SQL INSERT 语句

2025 年 7 月 23 日 | 阅读 6 分钟

在本文中,我们将详细阐述 SQL INSERT 语句的概念及其各种方法。

SQL INSERT 语句用于在表中插入单个或多个数据。在 SQL 中,您可以按以下方式插入数据:

  1. 不指定列名
  2. 指定列名
  3. 使用 Select 语句插入多行
  4. 使用 Select 语句插入

示例表

EMPLOYEE

EMP_IDEMP_NAMECITY工资年龄
1AngelinaChicago20000030
2RobertAustin30000026
3基督徒Denver10000042
4KristenWashington50000029
5罗素Los angels20000036

1. 不指定列名

如果您想指定所有列的值,您可以指定或忽略这些值。在向表中插入行时,始终建议添加列名,因为:

  • 列的数量可能会增加或减少,这可能导致 INSERT 语句失败。
  • 即使 INSERT 语句成功,也可能为列名输入错误的值。例如:在 EMP_NAME 列中输入了 'WASHINGTON',在 CITY 列中输入了 'RUCHI'。

语法

解释:在上例语法中,TABLE_NAME 代表插入数据的表名。Value1, Value2 等代表输入到表中的值。

为了插入数据,我们以 Employee 表为例。

查询

如果您想在执行 insert 语句后查看 EMPLOYEE 表的内容,请使用以下 SELECT 语句。

输出:执行此查询后,EMPLOYEE 表将如下所示:

EMP_IDEMP_NAMECITY工资年龄
1AngelinaChicago20000030
2RobertAustin30000026
3基督徒Denver10000042
4KristenWashington50000029
5罗素Los angels20000036
6Marry加拿大60000048

2. 指定列名

要插入部分列值,您必须指定列名。

语法

解释:在上例语法中,TABLE_NAME 指的是插入数据的表名。col1, col2 等指的是将输入值的列,value1, value2 等指的是输入到表中的值。

为了插入数据,我们以 Employee 表为例。

查询

解释:执行上述语句后,如果语句中没有错误,将发送消息“1 行已创建”,并将该行插入到“EMPLOYEE”表中。用户应注意列数据类型与其对应值是否匹配。

如果您想检查 EMP_DATA 表的内容,请使用以下 SELECT 语句。

输出:执行此查询后,表将如下所示:

EMP_IDEMP_NAMECITY工资年龄
1AngelinaChicago20000030
2RobertAustin30000026
3基督徒Denver10000042
4KristenWashington50000029
5罗素Los angels20000036
6Marry加拿大60000048
7杰克nullnull40

3. 使用单个 Insert 语句插入多行

使用单个 Insert 语句,您可以向表中插入多行。

为了插入数据,我们以 employee 表为例。

查询

解释:执行上述语句后,如果语句中没有错误,将发送消息“3 行已创建”,并将这些行插入到“EMPLOYEE”表中。用户应注意列数据类型与其对应值是否匹配。

如果您想查看 EMPLOYEE 表的内容,请使用以下 SELECT 语句。

输出:执行此查询后,表将如下所示:

EMP_IDEMP_NAMECITY工资年龄
1AngelinaChicago20000030
2RobertAustin30000026
3基督徒Denver10000042
4KristenWashington50000029
5罗素Los angels20000036
6Marry加拿大60000048
7杰克nullnull40
8JuliWashington2400050
9AryanAustin1500025
10Priya加拿大3500037
11SandlyWashington2500055

4. 使用 Select 语句插入

使用 SELECT 语句,您还可以将从一个表选择的值插入到另一个表中。

语法是

解释:在上例语法中,table_name 代表我们正在插入数据的表名。Column_name1, column_name2 代表将插入值的列。有时 column_name 是可选的,但如果指定了,INSERT 语句中引用的列数必须等于 SELECT 语句中的列数。

以 **EMP_DATA** 表为例,该表已创建,并且具有与 EMPLOYEE 表相同的列数据类型约束。因此,将 EMP_DATA 表中存在的所有行插入 EMPLOYEE 表的语句如下:

解释:此语句将 EMPLOYEE 表的所有记录插入到 EMP_DATA 表中。

如果您想检查 EMP_DATA 表的内容,请使用以下 SELECT 语句。

输出:执行此查询后,表将如下所示:

EMP_IDEMP_NAMECITY工资年龄
1AngelinaChicago20000030
2RobertAustin30000026
3基督徒Denver10000042
4KristenWashington50000029
5罗素Los angels20000036
6Marry加拿大60000048
7杰克nullnull40
8JuliWashington2400050
9AryanAustin1500025
10Priya加拿大3500037
11SandlyWashington2500055

插入表数据时要考虑的重要事项。

  • 如果在向表中插入行时未提及列名,SQL 默认使用所有列。
  • "VALUES" 关键字后面的列名数量必须与出现的数值数量匹配。
  • 列及其对应值的数据类型必须匹配。
  • 新插入的行将以任意位置进入表,这意味着表没有索引顺序。
  • 如果在列规范中创建了带有 DEFAULT 值的表,则您可能需要也可能不需要在 INSERT 语句中为该列指定值。例如:
  • 字符数据将用单引号括起来。
  • 如果您想显示引号,请使用两个引号来显示每个引号。

关于 SQL INSERT 语句的常见问题

1. 如何在 SQL 表中插入多行?

答案:要向 SQL 表中插入多行,请使用“INSERT INTO”语句,后跟表名和括号内每行的值,用逗号分隔。

让我们举个例子

2. SQL INSERT 语句的目的是什么?

答案:它通常在 SQL 中使用,允许用户将新行或多行数据插入到现有表中。


下一主题DBMS SQL Update