2010-09-30 46 views
1

我通常发现使用MYSQL INSERT命令Mysql的INSERT语句的差异

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'; 

有没有在这些任何差异的三种方式?

回答

2

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

前两者之间的区别在于指定了要插入的字段,因为如果您满意将字段设置为NULL,则可能会漏掉字段,因此更加灵活。同时指定字段意味着如果表格布局改变,该语句仍然可以工作;如果你没有指定你依赖表的字段永不改变。

0

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

1

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