MySQL INSERT 语句

2025年8月11日 | 阅读 6 分钟

引言

在本文中,我们将详细阐述 MySQL INSERT 语句及其各种用法。

什么是 MySQL INSERT 语句?

MySQL INSERT 语句用于在数据库中存储或添加数据到 MySQL 表。我们可以通过两种方式使用单个查询在 MySQL 中执行记录插入:

  1. 插入单行记录
  2. 插入多行记录
  3. 使用 Select 语句插入
  4. 使用 Ignore 语句插入
  5. 使用 Set 语句插入

语法

以下是 SQL INSERT INTO 命令的通用语法,用于在 MySQL 表中插入单条记录:

在上述语法中,我们首先需要指定表名和逗号分隔的列列表。其次,我们在 VALUES 子句之后提供与列名对应的值列表。

注意:字段名是可选的。如果我们要指定部分值,则字段名是强制性的。它还确保列名和值应该相同。此外,列和相应值的位置必须相同。

如果要在单个命令中插入多条记录,请使用以下语句:

在上述语法中,所有行应在值字段中用逗号分隔。

MySQL INSERT 示例

让我们通过多个示例了解 INSERT 语句在 MySQL 中是如何工作的。首先,使用以下命令在数据库中创建表“People”:

1. 如果我们要存储所有字段的单条记录,请使用以下语法:

2. 如果我们要存储多条记录,请使用以下语句,我们可以指定所有字段名或不指定任何字段。

3. 如果我们想在不提供所有字段的情况下存储记录,我们使用以下部分字段语句。在这种情况下,指定字段名是强制性的。

在下面的输出中,我们可以看到所有 INSERT 语句都已成功执行并将值正确存储到表中。

MySQL INSERT Statement

我们可以使用以下语法来显示 People 表的记录:

我们将得到如下输出

MySQL INSERT Statement

在 MySQL 表中插入日期

我们还可以使用 INSERT 语句在 MySQL 表中添加日期。MySQL 提供了几种用于存储日期的数据类型,例如 DATE、TIMESTAMP、DATETIME 和 YEAR。MySQL 中日期的默认格式YYYY-MM-DD

此格式具有以下描述:

  • YYYY: 它表示四位数的年份,例如 2020。
  • MM: 它表示两位数的月份,例如 01、02、03 和 12。
  • DD: 它表示两位数的日期,例如 01、02、03 和 31。

以下是在 MySQL 表中插入日期的基本语法:

如果我们要以 mm/dd/yyyy 格式插入日期,则需要使用以下语句:

3. 使用 Select 语句插入

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

语法是

解释:在上述语法中,table_name 表示我们正在插入数据的表名。Column_name1, column_name2 表示将插入值的列。有时 column_name 是可选的,但如果指定,INSERT 语句中引用的列数必须等于 SELECT 语句中的列数。WHERE 条件用于向 INSERT 语句添加约束。

PEOPLEPEOPLE_INFO 两个表为例。在 PEOPLE_INFO 表中,我们想从已创建的 PEOPLE 表中插入人员姓名、职业和年龄等信息。在插入数据之前,请确保 PEOPLE_INFO 表具有与 PEOPLE 表相同列数据类型的约束。

PEOPLE_INFO 表中的行插入到 PEOPLE 表中的方法如下。

解释:此语句将 PEOPLE 表中的人员姓名、职业和年龄记录插入到 PEOPLE_INFO 表中。

如果要检查 PEOPLE_INFO 表的内容,请使用以下 SELECT 语句。

输出:以下是此示例的输出。

name职业年龄
彼得工程师32
Joseph开发者30
迈克领导者28
斯蒂芬科学家45
斯蒂芬科学家NULL
Bob参与者NULL

4. INSERT IGNORE 语句

如果要将数据插入表中并忽略任何重复条目,可以使用 INSERT IGNORE 语句来实现。

语法是

解释:在上述语法中,

  • table_name 表示表名。
  • IGNORE 关键字用于忽略表中的重复条目,并且语句会继续执行而不会出现任何错误。
  • 将值插入表中的列名。
  • WHERE 条件用于向 INSERT 语句添加约束。

以具有唯一列 id 的 PEOPLE 表为例。如果我们要插入新记录,但如果具有相同 ID 的记录已存在,我们希望忽略插入。

将行插入 PEOPLE 表的方法如下。

解释:此语句不会向表中插入任何记录,因为 ID 106 已存在。

如果要检查 PEOPLE 表的内容,请使用以下 SELECT 语句。

输出:运行此查询后,表将与上面相同,因为 ignore 语句会忽略重复内容,并且语句会运行而不会出现任何错误。

IDname职业年龄
101彼得工程师32
102Joseph开发者30
103迈克领导者28
104斯蒂芬科学家45
105斯蒂芬科学家NULL
106Bob参与者NULL

5. 使用 Set 语句插入

如果要通过在选定列中设置值来将数据插入表中,可以使用 INSERT VALUE WITH SET 语句来实现。

语法是

解释:在上述语法中,

  • table_name 表示表名。
  • SET 关键字用于设置表中列的值,并且语句会继续运行而不会出现任何错误。
  • 列名存储将插入表中的值。

PEOPLE 表为例插入数据。

将行插入 PEOPLE 表的方法如下。

解释:上述语句将指定的值插入到表中。

如果要检查 PEOPLE 表的内容,请使用以下 SELECT 语句。

输出:运行此查询后,表的输出如下。

IDname职业年龄
101彼得工程师32
102Joseph开发者30
103迈克领导者28
104斯蒂芬科学家45
105斯蒂芬科学家NULL
106Bob参与者NULL
107马诺吉内容撰写人33

MySQL INSERT 语句的常见问题

1. 在 MySQL Insert 语句中插入数据时的一些关键点列表?

答案:以下是在 MySQL insert 语句中插入数据时的一些关键点。

  • 检查重复值:使用 'INSERT IGNORE' 语句处理表中可能存在的重复条目。
  • 验证数据类型:确保插入表中的值与表结构中定义的数据类型匹配。
  • 索引:索引有助于提高性能,尤其是在频繁插入大量数据时。

下一个主题MySQL Update 查询