# MySQL教程 - 6 插入数据
现在库也建好了,表也建好了,可以向表中添加数据了。
添加数据使用 INSERT
关键字。
现在有 tb_employee 表,结构如下:
CREATE TABLE tb_employee (
id INT AUTO_INCREMENT PRIMARY KEY, -- 员工ID,自增主键
emp_number VARCHAR(16), -- 工号,使用 VARCHAR 类型,长度可变
name VARCHAR(64), -- 姓名,使用 VARCHAR 类型,长度可变
id_card CHAR(18), -- 身份证号码,使用 CHAR 类型,长度固定为 18
age TINYINT UNSIGNED, -- 年龄,使用 TINYINT UNSIGNED,确保年龄为正数
gender CHAR(3), -- 性别,使用 CHAR(3),存储汉字 "男" 或 "女"
salary DECIMAL(10, 2), -- 工资,使用 DECIMAL,存储小数
entry_time DATETIME -- 入职时间,使用 DATETIME 类型
);
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
现在向该表添加数据。
因为还没有学习如何查询数据,所以可以通过图形化客户端查看表中的数据,在图形化界面中,双击打开表即可查看:
一般使用 SQL 执行插入数据,需要执行刷新操作才能显示出数据。
或者使用下面的语句查询 tb_employee
表的所有数据:
SELECT * FROM tb_employee;
1
关于查询,后面再将。
# 6.1 全部字段添加数据
全部字段添加数据,就是在插入数据的时候,需要指定表中所有字段的值。
语法:
INSERT INTO 表名 VALUES(值1,值2, ...);
1
举个栗子:
-- 添加三个员工的数据,分别设置各个字段的值
INSERT INTO tb_employee VALUES(1, '1', '叶文杰', '110101199901012345', 38, '女', 3800.00, '2024-11-24 10:10:10');
-- 可空的字段可以不设置值
INSERT INTO tb_employee VALUES(2, '2', '章北海', null, 43, '男', 13800.12, '2024-11-25 10:11:12');
1
2
3
4
5
2
3
4
5
插入的值要和字段的顺序保持一致,字符串和时间使用 ''
括起来。
执行完成,表中的数据如下:
使用客户端界面执行的时候,可以选中语句单条执行,也可以批量执行多条语句,执行完成会显示执行的结果,例如插入两条数据成功后,会返回更新的行数为 2
:
# 6.2 指定字段添加数据
指定字段添加数据,就是在插入数据的时候,只设置指定字段的值,如果字段设置为非空,那么该字段则必须设置。
语法:
INSERT INTO 表名 (字段1, 字段2, ...) VALUES(值1, 值2, ...);
1
字段和值顺序要对应。
举个栗子:
-- 添加两个员工的数据,只设置指定的字段
-- id是主键,非空,但是是自动增长的,可以设置,也可以不设置,其他的值可以按照是否非空进行设置
INSERT INTO tb_employee(emp_number, name, entry_time) VALUES('3', '罗辑', '2024-01-12 09:08:07');
INSERT INTO tb_employee(emp_number, name, entry_time) VALUES('4', '云天明', '2025-03-04 06:17:11');
1
2
3
4
2
3
4
执行完成,表中的数据如下:
# 6.3 批量添加数据
批量添加数据就是使用一条SQL语句同时添加多条数据。
语法:
多条数据使用 ,
分隔:
-- 方式1:全字段添加
INSERT INTO 表名 VALUES(值1,值2, ...), (值1,值2, ...), (值1,值2, ...), ...;
-- 方式2:指定字段添加
INSERT INTO 表名 (字段1, 字段2, ...) VALUES(值1, 值2, ...), (值1, 值2, ...), (值1, 值2, ...), ...;
1
2
3
4
5
2
3
4
5
举个栗子:
-- 全字段同时添加三个员工的数据:
INSERT INTO tb_employee VALUES
(1, '1', '叶文杰', '110101199901012345', 38, '女', 3800.00, '2024-11-24 10:10:10'),
(2, '2', '章北海', null, 43, '男', 13800.12, '2024-11-25 10:11:12'),
(3, '3', '罗辑', '440524200112302781', 28, '男', 23500.08, '2024-11-26 23:10:18');
-- 指定字段添加三个员工的数据:
INSERT INTO tb_employee(emp_number, name, entry_time) VALUES
('4', '史强', '2024-01-12 09:08:07'),
('5', '云天明', '2025-03-04 06:17:11'),
('6', '程心', '2025-11-26 23:10:18');
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11