SQL INSERT INTO 语句

SQL INSERT INTO 语句

INSERT INTO 语句用于在表中插入新记录。

编写 INSERT INTO 语句有两种方式:

语法 1

同时指定列名和要插入的值:

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

语法 2

如果要为表的所有列插入值,可以省略列名。

但是,值的顺序必须与表中列的顺序相同:

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

演示数据库

以下是实例中使用的 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

INSERT INTO 实例

这里我们为表的所有列插入值,因此我们省略了列名。

以下 SQL 语句在 "Customers" 表中插入一条新记录:

实例

INSERT INTO Customers
VALUES ('Cardinal', 'Tom B. Erichsen', 'Skagen 21', 'Stavanger', '4006', 'Norway');

现在,"Customers" 表中的最后一条记录将如下所示:

CustomerID CustomerName ContactName Address City PostalCode Country
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
92 Cardinal null null  Stavanger null Norway

插入多行

也可以在一个语句中插入多行。

要插入多行数据,我们使用相同的 INSERT INTO 语句,但使用多个值:

以下 SQL 语句在 "Customers" 表中插入三条新记录:

实例

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