【MySQL】DML:添加-修改-删除数据 (数据操作语言) 学习笔记

发布于:2025-04-06 ⋅ 阅读:(20) ⋅ 点赞:(0)

DML (数据操作语言) 学习笔记

1. 数据表结构

首先创建员工表 employee

CREATE TABLE `employee` (
  `id` int unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',
  `username` varchar(20) NOT NULL COMMENT '用户名',
  `password` varchar(32) DEFAULT '123456' COMMENT '密码',
  `name` varchar(10) NOT NULL COMMENT '姓名',
  `gender` tinyint unsigned NOT NULL COMMENT '性别, 1 男; 2, 女',
  `phone` char(11) NOT NULL COMMENT '手机号',
  `job` tinyint unsigned DEFAULT NULL COMMENT '职位 1 班主任, 2 讲师, 3 学工主管, 4 教研主管, 5 咨询师',
  `salary` int unsigned DEFAULT NULL COMMENT '薪资',
  `entry_date` date DEFAULT NULL COMMENT '入职日期',
  `image` varchar(255) DEFAULT NULL COMMENT '图像',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_time` datetime DEFAULT NULL COMMENT '修改时间',
  PRIMARY KEY (`id`),
  UNIQUE KEY `username` (`username`),
  UNIQUE KEY `phone` (`phone`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='员工表';

2. 数据操作语言(DML)

2.1 添加数据 (INSERT)

基本语法
-- 给指定字段添加数据
INSERT INTO 表名 (字段名1, 字段名2, ...) VALUES (1,2, ...);

-- 给全部字段添加数据
INSERT INTO 表名 VALUES (1,2, ...);

-- 批量添加数据
INSERT INTO 表名 (字段名1, 字段名2, ...) VALUES (1,2, ...), (1,2, ...), ...;
INSERT INTO 表名 VALUES (1,2, ...), (1,2, ...), ...;
示例
-- 给employee表指定字段添加数据
INSERT INTO employee(id, username, name, gender, phone, job, salary, entry_date) 
VALUES(1, 'user1', '张三', 1, '13800138001', 2, 10000, '2020-01-01');

-- 给employee表所有字段添加数据
INSERT INTO employee 
VALUES(2, 'user2', '123456', '李四', 2, '13800138002', 1, 8000, '2020-02-01', NULL, NOW(), NOW());

-- 批量插入数据
INSERT INTO employee(username, name, gender, phone) 
VALUES('user3', '王五', 1, '13800138003'), 
      ('user4', '赵六', 2, '13800138004');

2.2 修改数据 (UPDATE)

基本语法
UPDATE 表名 SET 字段名1 =1, 字段名2 =2, ... [WHERE 条件];
示例
-- 修改id为1的员工姓名
UPDATE employee SET name = '张三丰' WHERE id = 1;

-- 修改id为2的员工姓名和职位
UPDATE employee SET name = '李思思', job = 3 WHERE id = 2;

-- 修改所有员工的入职日期
UPDATE employee SET entry_date = '2023-01-01';

-- 修改薪资低于10000的员工薪资增加10%
UPDATE employee SET salary = salary * 1.1 WHERE salary < 10000;

2.3 删除数据 (DELETE)

基本语法
DELETE FROM 表名 [WHERE 条件];
示例
-- 删除gender为2(女)的员工
DELETE FROM employee WHERE gender = 2;

-- 删除id为5的员工
DELETE FROM employee WHERE id = 5;

-- 删除所有员工数据
DELETE FROM employee;

3. 注意事项

  1. INSERT 注意事项:

    • 字段顺序与值顺序必须一一对应
    • 字符串和日期型数据应包含在引号中
    • 插入的数据大小应在字段规定范围内
    • 未指定的字段会使用默认值或NULL
  2. UPDATE 注意事项:

    • WHERE条件可选,没有条件会修改整张表
    • 可以同时修改多个字段
    • 可以使用表达式计算新值
  3. DELETE 注意事项:

    • WHERE条件可选,没有条件会删除整张表数据
    • DELETE不能删除单个字段(用UPDATE设置为NULL代替)
    • 删除操作需谨慎,建议先备份数据
    • 大量数据删除可能影响性能

4. 最佳实践

  1. 执行DML操作前,先使用SELECT验证条件是否正确
  2. 批量操作时考虑使用事务保证数据一致性
  3. 重要数据删除前先备份
  4. 生产环境谨慎使用无条件的UPDATE和DELETE

网站公告

今日签到

点亮在社区的每一天
去签到