MySQL 添加表数据(图文教程)
一则或许对你有用的小广告
欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论
- 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于
Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...
,点击查看项目介绍 - 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/
截止目前, 星球 内专栏累计输出 72w+ 字,讲解图 3103+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 2400+ 小伙伴加入学习 ,欢迎点击围观
在 MySQL 中,向表中添加数据是常见的数据库操作。使用 INSERT INTO
语句可以将数据插入表的指定列中,也可以一次性插入多条记录。本小节中,将介绍多种插入数据的方式。
1. 基本插入数据语法
基本的插入数据语法如下:
INSERT INTO 表名 (列名1, 列名2, ...) VALUES (值1, 值2, ...);
2. 插入单行数据
向 t_employee
表插入一条员工数据:
INSERT INTO t_employee (name, position, salary) VALUES ('犬小哈', '项目经理', 7000.00);
因为 employee_id
是自增字段,不需要手动提供值。
注意:因为以上插入语句中包含中文,命令行工具对中文支持不好,小伙伴在测试的时候,建议使用图形客户端来操作,如 Navicat ,如下图所示:
3. 插入多行数据
MySQL 支持使用一条 INSERT INTO
语句插入多行数据,这种方式适合批量插入操作。
INSERT INTO t_employee (name, position, salary) VALUES
('犬二哈', 'Java实习生', 3000.00),
('犬大哈', 'Java高级工程师', 6000.00),
('张三', '运维工程师', 5000.00);
上述 SQL 执行成功后,双击 t_employee
表,并右键刷新即可查看最新添加的记录:
5. 插入部分列数据
如果只为部分列插入数据,可以省略未提供的列,这些列将设置为 NULL
或使用默认值。
INSERT INTO t_employee (name, position) VALUES ('李四', 'DBA 数据库工程师');
在这个示例中,salary
将被设置为 NULL
或默认值。
6. 使用 INSERT INTO ... SELECT
插入数据
INSERT INTO ... SELECT
语句可以从一个表中选择数据并插入到另一个表中。这里假设还有一张 t_employee_archive
已离职员工表:
INSERT INTO t_employee (name, position, salary)
SELECT name, position, salary FROM t_employee_archive WHERE salary > 4000;
这条语句从 t_employee_archive
表中复制薪资高于 4000 的记录并插入到 t_employee
表中。
7. 使用 REPLACE INTO
插入或更新数据
REPLACE INTO
语句在主键或唯一键冲突时替换旧数据,并插入新数据。
REPLACE INTO t_employee (employee_id, name, position, salary) VALUES (1, '王五', '前端工程师', 6000.00);
8. 使用 ON DUPLICATE KEY UPDATE
插入或更新数据
ON DUPLICATE KEY UPDATE
语句用于在主键或唯一键冲突时更新已有记录。
INSERT INTO t_employee (employee_id, name, position, salary) VALUES (1, '诸葛亮', '安卓工程师', 7000.00)
ON DUPLICATE KEY UPDATE position = 'Java架构师', salary = 60000.00;
9. 小结
MySQL 中添加数据操作多样,可以根据需求使用单行插入、多行插入或条件更新的方式。掌握 INSERT INTO
、REPLACE INTO
和 ON DUPLICATE KEY UPDATE
语句,有助于灵活管理表中的数据。