SQL INSERT INTO 語(yǔ)句


 INSERT INTO 語(yǔ)句用于向表中插入新的數(shù)據(jù)行。

SQL INSERT INTO 語(yǔ)法

 INSERT INTO 語(yǔ)句可以用兩種形式編寫。
 第一個(gè)表單沒有指定要插入數(shù)據(jù)的列的名稱,只提供要插入的值,即可添加一行新的數(shù)據(jù):

INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);

 第二種,如果要為表中的所有列添加值,則不需要在SQL查詢中指定列名稱。但是,請(qǐng)確保值的順序與表中的列順序相同。INSERT INTO語(yǔ)法如下所示:

INSERT INTO table_name
VALUES (value1, value2, value3, ...);

演示數(shù)據(jù)庫(kù)


 在本教程中,我們將使用著名的 Northwind 示例數(shù)據(jù)庫(kù)。

 以下是"Customers" 表中的數(shù)據(jù):

CustomerID CustomerName ContactName Address City PostalCode Country
87 Wartian Herkku Pirkko Koskitalo Torikatu 38 Oulu 90110 Finland
88 Wellington Importadora Paula Parente Rua do Mercado, 12 Resende 08737-363 Brazil
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

INSERT INTO 實(shí)例


 假設(shè)我們想在"Customers"表中插入一個(gè)新行。

 我們可以使用以下SQL語(yǔ)句:

實(shí)例

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

 現(xiàn)在,選自 "Customers" 表的數(shù)據(jù)如下所示:

CustomerID CustomerName ContactName Address City PostalCode Country
87 Wartian Herkku Pirkko Koskitalo Torikatu 38 Oulu 90110 Finland
88 Wellington Importadora Paula Parente Rua do Mercado, 12 Resende 08737-363 Brazil
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

lamp 注意到了嗎?我們沒有將任何號(hào)碼插入 CustomerID 字段。
CustomerID列是一個(gè)自動(dòng)遞增字段,在將新記錄插入到表中時(shí)自動(dòng)生成。

僅在指定的列中插入數(shù)據(jù)


 我們還可以只在指定的列中插入數(shù)據(jù)。

 以下SQL語(yǔ)句插入一個(gè)新行,但只在“CustomerName”、“City”和“Country”列中插入數(shù)據(jù)(CustomerID字段將自動(dòng)更新):

實(shí)例

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

 現(xiàn)在,選自 "Customers" 表的數(shù)據(jù)如下所示:

CustomerID CustomerName ContactName Address City PostalCode Country
87 Wartian Herkku Pirkko Koskitalo Torikatu 38 Oulu 90110 Finland
88 Wellington Importadora Paula Parente Rua do Mercado, 12 Resende 08737-363 Brazil
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

使用另一個(gè)表填充一個(gè)表


 您可以通過(guò)另一個(gè)表上的SELECT語(yǔ)句查詢出來(lái)的字段值,然后將數(shù)據(jù)填充到本表中,條件是另一個(gè)表所查詢的字段與本表要插入數(shù)據(jù)的字段是一一對(duì)應(yīng)的。

INSERT INTO first_table_name [(column1, column2, ... columnN)] 
SELECT column1, column2, ...columnN 
FROM second_table_name
[WHERE condition];