sql语句中的insert 和 insert into 的区别?into有什么用?

说白了,这两条SQL语句的区别就像填写大学申请表一样:一个选择包罗万象的学校,另一个则自行选择专业。

我们先来说说最重要的事情。
Insert into tableNamevalues(...) 是暴力插入。
表中的所有字段都必须填写值。
去年我们开展了一个电子商务项目。
该表有 2 0 列。
数据脚本写得不正确,缺少一个字段。
直接报错了。
说实话,当时确实挺尴尬的。
还有一点叫“全覆盖”。
如果某个字段的默认值是0,而你不填写的话,数据库就会将其填充为0。
很多人没有注意到这一点。

还有另一个关键细节。
例如,表有一个自动递增的ID。
通过这种写入方法,数据库将自动为 1 0,000 个条目分配 ID。
但如果使用insert tableName(字段名1 ,字段名2 ),则必须手动输入ID。
去年我们组织3 000场活动的时候,我们就采用了后一种方式。
后来发现是错误的,数据ID重复了,所以赶紧恢复为暴力插入。

一开始我也以为手动指定字段比较灵活,直到遇到了外键绑定,需要按顺序填写值等。
还有就是,如果某个字段不为NULL却没有填写,这种写法会直接崩溃。

建议下次使用insert into ...values(...),除非你确定表结构没有1 00%改变,否则很容易出问题。

MySQL中INSERT,UPDATE和REPLACE的区别与用法

那天,我在一台旧电脑上查找资料,无意中看到了打印出来的 MySQL 命令列表。
突然,我想起了一个场景:一位朋友抱怨他的数据库中某个表的数据总是丢失。
我告诉他你可能使用了 REPLACE 而不是 INSERT。
朋友一脸疑惑,我就打开电脑一边演示一边解释。
他说,原来数据库操作上的选择是如此重要。

时间回到2 02 1 年,地点在一家咖啡馆。
具体数字是,该表中有5 00多条数据。
我朋友用REPLACE替换了数据,结果整个表的数据都被清空了。
等等,还有一件事。
我突然想到,如果他当时用的是INSERT INTO...SELECT...FROM...语法,可能就不会出现这个问题了。
看来在数据库操作中,细节真的很关键。