SQL INSERT INTO 語句詳解:插入新記錄、多行插入和自增欄位

2023-11-19 18:00:33

SQL INSERT INTO 語句用於在表中插入新記錄。

INSERT INTO 語法

可以以兩種方式編寫INSERT INTO語句:

  1. 指定要插入的列名和值:
INSERT INTO 表名 (列1, 列2, 列3, ...)
VALUES (值1, 值2, 值3, ...);
  1. 如果要為表的所有列新增值,則無需在SQL查詢中指定列名。但是,請確保值的順序與表中的列順序相同。在這種情況下,INSERT INTO 語法如下:
INSERT INTO 表名
VALUES (值1, 值2, 值3, ...);

演示資料庫

以下是範例中使用的Customers表的一部分:

CustomerID CustomerName ContactName Address City PostalCode Country
89 White Clover Markets Karl Jablonski 305 - 14th Ave. S. Suite 3B Seattle 98128 USA
90 Wilman Kala Matti Karttunen Keskuskatu 45 Helsinki 21240 Finland
91 Wolski Zbyszek ul. Filtrowa 68 Walla 01-012 Poland

插入範例

以下SQL語句將在"Customers"表中插入一條新記錄:

INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country)
VALUES ('Cardinal', 'Tom B. Erichsen', 'Skagen 21', 'Stavanger', '4006', 'Norway');

此時,"Customers"表的選擇將如下所示:

CustomerID CustomerName ContactName Address City PostalCode Country
89 White Clover Markets Karl Jablonski 305 - 14th Ave. S. Suite 3B Seattle 98128 USA
90 Wilman Kala Matti Karttunen Keskuskatu 45 Helsinki 21240 Finland
91 Wolski Zbyszek ul. Filtrowa 68 Walla 01-012 Poland
92 Cardinal Tom B. Erichsen Skagen 21 Stavanger 4006 Norway

您是否注意到我們沒有在CustomerID欄位中插入任何數位? CustomerID列是一個自增欄位,當插入新記錄時會自動生成。

僅在指定列中插入資料

也可以只在特定列中插入資料。

以下SQL語句將插入一條新記錄,但僅在"CustomerName"、"City"和"Country"列中插入資料(CustomerID將自動更新):

INSERT INTO Customers (CustomerName, City, Country)
VALUES ('Cardinal', 'Stavanger', 'Norway');

此時,"Customers"表的選擇將如下所示:

CustomerID CustomerName ContactName Address City PostalCode Country
89 White Clover Markets Karl Jablonski 305 - 14th Ave. S. Suite 3B Seattle 98128 USA
90 Wilman Kala Matti Karttunen Keskuskatu 45 Helsinki 21240 Finland
91 Wolski Zbyszek ul. Filtrowa 68 Walla 01-012 Poland
92 Cardinal null null Stavanger null Norway

插入多行

還可以在一條語句中插入多行。

要插入多行資料,可以使用相同的INSERT INTO語句,但包含多個值:

INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country)
VALUES
('Cardinal', 'Tom B. Erichsen', 'Skagen 21', 'Stavanger', '4006', 'Norway'),
('Greasy Burger', 'Per Olsen', 'Gateveien 15', 'Sandnes', '4306', 'Norway'),
('Tasty Tee', 'Finn Egan', 'Streetroad 19B', 'Liverpool', 'L1 0AA', 'UK');

請確保在每組值之間用逗號,分隔。

此時,"Customers"表的選擇將如下所示:

CustomerID CustomerName ContactName Address City PostalCode Country
89 White Clover Markets Karl Jablonski 305 - 14th Ave. S. Suite 3B Seattle 98128 USA
90 Wilman Kala Matti Karttunen Keskuskatu 45 Helsinki 21240 Finland
91 Wolski Zbyszek ul. Filtrowa 68 Walla 01-012 Poland
92 Cardinal Tom B. Erichsen Skagen 21 Stavanger 4006 Norway
93 Greasy Burger Per Olsen Gateveien 15 Sandnes 4306 Norway
94 Tasty Tee Finn Egan Streetroad 19B Liverpool L1 0AA UK

最後

為了方便其他裝置和平臺的小夥伴觀看往期文章:公眾號搜尋Let us Coding,或者掃描下方二維條碼,關注公眾號,即可獲取最新文章。

看完如果覺得有幫助,歡迎點贊、收藏關注