数据库中插入数据的insert语句究竟如何正确编写?
- 数据库
- 2025-12-01
- 7
数据库的INSERT语句是用于向数据库表中插入新记录的SQL命令,以下是一个详细的介绍,包括语法、示例和注意事项。
INSERT语句基本语法
INSERT INTO 表名 (列1, 列2, ..., 列N) VALUES (值1, 值2, ..., 值N);
- 表名:要插入数据的表名。
- 列1, 列2, ..., 列N:要插入数据的列名,可以省略,但需要与VALUES中的值对应。
- 值1, 值2, ..., 值N:要插入的值,可以是具体的值,也可以是表达式。
示例
假设有一个名为students的表,包含以下列:
- id(学生ID,整数类型)
- name(学生姓名,字符串类型)
- age(学生年龄,整数类型)
以下是一个插入记录的示例:

插入多条记录
可以使用以下语法一次插入多条记录:
INSERT INTO 表名 (列1, 列2, ..., 列N) VALUES (值1_1, 值1_2, ..., 值1_N), (值2_1, 值2_2, ..., 值2_N), ...;
以下是一个插入多条记录的示例:

省略列名
如果插入的值与表中的列完全匹配,可以省略列名:
INSERT INTO students VALUES (4, 'David', 23);
插入NULL值
如果某列允许NULL值,可以在VALUES中使用NULL关键字:
INSERT INTO students (id, name, age, grade) VALUES (5, 'Eve', 24, NULL);
插入现有表中的数据
可以使用INSERT INTO ... SELECT语句将现有表中的数据插入到另一个表中:
INSERT INTO new_students (id, name, age) SELECT id, name, age FROM students WHERE age > 20;
注意事项
- 确保插入的值与列的数据类型匹配。
- 如果插入的值包含单引号(’),需要使用两个单引号(”)进行转义。
- 在某些数据库系统中,如果省略了列名,那么插入的值顺序必须与表中的列顺序一致。
表格示例
| 列名 | 数据类型 | 插入示例 |
|---|---|---|
| id | 整数 | VALUES (1, ‘Alice’, 20) |
| name | 字符串 | VALUES (‘Bob’, 21) |
| age | 整数 | VALUES (22, ‘Charlie’, NULL) |
| grade | 字符串 | VALUES (NULL, ‘David’, 23, ‘A’) |
| id, name | 整数,字符串 | VALUES (4, ‘Eve’, 24) |
| id, name, age | 整数,字符串,整数 | VALUES (5, ‘Frank’, 25) |
FAQs
Q1:如何向数据库表中插入多条记录?
A1:可以使用INSERT INTO ... VALUES语句一次插入多条记录,每条记录用逗号分隔。
Q2:如何将一个表中的数据插入到另一个表中?
A2:可以使用INSERT INTO ... SELECT语句将一个表中的数据插入到另一个表中,例如INSERT INTO new_students (id, name, age) SELECT id, name, age FROM students WHERE age > 20;。
