2010-09-30 48 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

您正在尋找什麼差異?就用法而言,第一個和第三個插入語句允許您僅設置所需的列,而第二個語句總是嘗試按照表結構的順序將值插入所有列。