SQL INSERT INTO 语句

2025年5月2日 | 阅读7分钟

有各种 SQL 命令可以帮助修改数据库中的数据,但在本文中,我们将学习 SQL INSERT INTO 语句。

SQL INSERT INTO Statement

SQL INSERT INTO 语句是最常用的 数据操作语言 (DML) 命令,用于在数据库中插入数据。它是 SQL 中将数据写入数据库表的最重要和最基本的命令之一。它用于在表中插入单个或多个记录。

有多种方法可以将数据插入表中,如下所示:

1. 通过指定列名和值

在此方法中,我们同时指定列名和它们的值。

语法 1:在表中插入单行

语法 2:在表中插入多行

描述

INSERT INTO:这是一个 SQL 语句,用于将数据插入数据库表。

table_name:这是我们要插入数据的表的名称。

column1, column2 … column:这些是我们要将数据插入数据库表的列名。

VALUES:这是一个 SQL 语句,用于指定要插入表中的值。

value1, value2 … valueN:这些是我们想要插入表中的值。

示例

假设您正在一家名为 **FaishonHub** 的服装店担任数据库管理员。您的工作是添加商店中可用产品的相关信息。会有大量数据,如产品、客户、订单和付款。您需要妥善组织数据,以便可以轻松地根据需要检索和操作数据,并且数据不会与其他任何数据混淆。

您可以为服装店 创建数据库,并在其中创建表,以妥善组织数据。您可以将数据库命名为 **FaishonHub**。

现在,让我们考虑 **FaishonHub** 数据库,创建一个表,并将值插入表中,以正确理解指定列名和值的 INSERT INTO 语句。

创建表格

让我们在 **FaishonHub** 数据库中创建一个名为 **Products** 的表,其字段名为 **product_id**、**product_name**、**price**、**size**、**color** 和 **quantity**。

CREATE TABLE 语句用于创建表。

在表中插入单行

我们正在使用 **INSERT INTO** 语句通过指定列名和值来插入数据到 Products 表。

检索表

要在插入值后检索表,我们使用以下语句:

结果表

我们可以看到,通过指定所有列名,值已插入 **Products** 表。

product_idproduct_nameprice大小color quantity
1牛仔裤550.00S黑色 10

在表中插入多条记录

检索表

结果表

我们可以看到多行已插入 **Products** 表。

product_idproduct_nameprice大小colorquantity
1牛仔裤550.00S黑色10
2连衣裙650.00M黑色5
3夹克450.00L蓝色2
4运动鞋920.006白色12
5裤子640.00M棕色15

仅在指定列中插入数据

检索表

结果表

由于我们只向 **Products** 表的 **product_id**、**product_name** 和 **quantity** 字段添加了数据,因此我们可以看到值已添加到指定字段,而其他字段将为 **NULL**。

product_idproduct_nameprice大小colorquantity
1牛仔裤550.00S黑色10
2连衣裙650.00M黑色5
3夹克450.00L蓝色2
4运动鞋920.006白色12
5裤子640.00M棕色15
6上衣NULLNULLNULL25

2. 不指定列名

在此方法中,无需指定将插入数据的列名,只需要其值。

语法 1:在表中插入单行

语法 2:在表中插入多行

描述

INSERT INTO:这是一个 SQL 语句,用于将数据插入数据库表。

VALUES:这是一个 SQL 命令,用于指定要插入表中的值。

table_name:这是我们要插入数据的表的名称。

value1, value2 … valueN:这些是我们想要插入表中的值。

示例

让我们考虑 **FashionHub** 数据库,并在其中创建另一个表,以理解不指定列名的 INSERT INTO 语句。

创建表格

让我们在 **FaishonHub** 数据库中创建另一个名为 **Customers** 的表,其字段名为 **customer_id**、**name**、**email**、**phone** 和 **address**。

CREATE TABLE 语句用于创建表。

CREATE TABLE Customers (

在表中插入单行

我们正在使用 **INSERT INTO** 语句通过不指定列名来插入值到 **Customers** 表。

检索表

customer_idnameemailphone地址
1Shawn Mendesshawnmendes@sample.comXY62125522Victoria

在表中插入多行

检索表

结果表

我们可以看到多条值已插入 **Customers** 表。

customer_idnameemailphone地址
1Shawn Mendesshawnmendes@sample.comXY62125522Victoria
2Shreya Ghoshalshreyaghoshal@sample.comXY98656544孟买
3Udit Narayanuditnarayan@sample.comXY58965623孟买
4Victor Garbervictorgarber@sample.comXY75126584Victoria
5Emma Stoneemmastone@sample.comXY25426859Toronto

注意:添加新行时,请确保值的 and 列的数据类型匹配。

3. 使用 INSERT INTO SELECT 语句

此方法用于将数据从一个表插入到另一个表,这意味着它用于将数据从一个表复制到另一个表。当我们想要相同的数据但不想再次键入所有数据时,它很有用。

语法 1:从另一个表中插入特定列

语法 2:从另一个表中插入所有列

描述

INSERT INTO: 这是一个 SQL 命令,用于将数据插入表中。

SELECT:这是一个 SQL 命令,用于从数据库中选择数据。

target_table:这是您要插入数据的目标表。

source_table:这是您要从中传输数据的源表。

示例

假设我们要 **FashionHub** 数据库中创建另一个表,用于存储剩余库存的产品数量。

我们不想更改 Products 表,但我们也想要 Products 表中的一些数据。我们可以使用 INSERT INTO SELECT 语句将数据从 Products 表插入到新表中。

我们将创建一个名为 **ProductStock** 的表,并将数据从 **Products** 表插入。

创建表格

让我们创建一个 **ProductStock** 表,其字段名为 **product_id**、**product_name**、**price**、**size**、**color** 和 **stock**。

CREATE TABLE 语句用于创建表。

从另一个表中插入特定列

检索表

结果表

我们可以看到特定列已插入 **ProductStock** 表。

product_idproduct_nameprice大小colorstock
1牛仔裤550.00NULLNULLNULL
2连衣裙650.00NULLNULLNULL
3夹克450.00NULLNULLNULL
4运动鞋920.00NULLNULLNULL
5裤子640.00NULLNULLNULL
6上衣NULLNULLNULLNULL

从另一个表中插入所有列

我们将使用 TRUNCATE TABLE 命令截断 ProductStock 表,并使用给定的查询将所有列插入表中。

检索表

结果表

我们可以看到所有列都已插入 **ProductStock** 表。

product_idproduct_nameprice大小colorstock
1牛仔裤550.00S黑色10
2连衣裙650.00M黑色5
3夹克450.00L蓝色2
4运动鞋920.006白色12
5裤子640.00M棕色15
6上衣NULLNULLNULL25

注意:当您将旧表的所有列插入新表时,请确保旧表和新表的列数相同。

结论

INSERT INTO 语句是向表中添加新数据的基本语句。我们可以通过指定特定列或所有列来添加单行或多行数据。我们还可以使用 **INSERT INTO SELECT** 语句将数据从一个表复制到另一个表。INSERT INTO 命令对于数据库的高效管理和操作非常重要。


下一个主题SQL 插入多值