Mysql INSERT语句差异

时间:2010-09-30 10:50:39

标签: mysql

我通常会找到三种使用MYSQL插入命令的方法

INSERT INTO `table` (field1, field2, field3) VALUES ('value1', 'value2', 'value3');

INSERT INTO `table` VALUES ('value1', 'value2', 'value3');

INSERT INTO `table` SET `field1`='value1', `field2`='value2', `field3`='value3';

这些之间有什么不同吗?

3 个答案:

答案 0 :(得分:2)

前两个是标准SQL;第三个是非标准的,特定于MySQL,源自UPDATE的标准语法。

前两个之间的区别在于,一个指定了要插入的字段,这更灵活,因为如果您对将字段设置为NULL感到满意,则可能会错过字段。同时指定字段意味着如果表格布局发生变化,该语句仍然有效;如果你没有指定依赖于表的字段,那就永远不会改变。

答案 1 :(得分:1)

您正在寻找什么方面的差异?就使用而言,第一个和第三个insert语句允许您只设置所需的列,而第二个语句总是尝试按表结构的顺序将值插入所有列。

答案 2 :(得分:0)

只有一个区别,对我来说非常明显:第二个不允许你指定自己的字段集来插入。