MySQL 添加表数据(图文教程)

一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论

  • 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于 Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...点击查看项目介绍
  • 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/

截止目前, 星球 内专栏累计输出 66w+ 字,讲解图 2896+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 2300+ 小伙伴加入学习 ,欢迎点击围观

在 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 ,如下图所示:

MySQL 插入单行数据MySQL 插入单行数据

3. 插入多行数据

MySQL 支持使用一条 INSERT INTO 语句插入多行数据,这种方式适合批量插入操作。

INSERT INTO t_employee (name, position, salary) VALUES
    ('Bob', 'engineer', 5000.00),
    ('Charlie', 'analyst', 4500.00),
    ('Diana', 'clerk', 3000.00);

5. 插入部分列数据

如果只为部分列插入数据,可以省略未提供的列,这些列将设置为 NULL 或使用默认值。

INSERT INTO t_employee (name, position) VALUES ('Eve', 'developer');

在这个示例中,salary 将被设置为 NULL 或默认值。

6. 使用 INSERT INTO ... SELECT 插入数据

INSERT INTO ... SELECT 语句可以从一个表中选择数据并插入到另一个表中。

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, 'Alice', 'senior manager', 8000.00);

8. 使用 ON DUPLICATE KEY UPDATE 插入或更新数据

ON DUPLICATE KEY UPDATE 语句用于在主键或唯一键冲突时更新已有记录。

INSERT INTO t_employee (employee_id, name, position, salary) VALUES (1, 'Alice', 'manager', 7000.00)
ON DUPLICATE KEY UPDATE position = 'manager', salary = 7000.00;

9. 小结

MySQL 中添加数据操作多样,可以根据需求使用单行插入、多行插入或条件更新的方式。掌握 INSERT INTOREPLACE INTOON DUPLICATE KEY UPDATE 语句,有助于灵活管理表中的数据。