🐸 青蛙编程网
首页 / 数据库 / MySQL / 4. 增删改:INSERT / UPDATE / DELETE

4. 增删改:INSERT / UPDATE / DELETE

这是什么:CRUD = 数据库增删改查四件套,本章管前三件:INSERT 插数据、UPDATE 改数据、DELETE 删数据,都是 SQL 语句。

为什么用:表建好了只是空壳子,真正干活的是往里塞数据、修正错误、清理垃圾。不会这三句,网站连「注册一个用户」都做不到。

如何用:本章拿 user 表逐条练 INSERT、UPDATE、DELETE,重点看清 WHERE 在改删时的保命作用。

4.1 INSERT:插入数据

INSERT INTO `user` (`username`, `email`, `age`)
VALUES ('frog', 'frog@example.com', 11),
       ('panda', 'panda@example.com', 9);

你会看到:

Query OK, 2 rows affected

要点:

  • 列清单必须写(username, email, age),不依赖列顺序,id 由自增填
  • 一次可插入多行,行间用逗号
  • 插入后用 SELECT * FROM user;(下一章详讲)确认

4.2 UPDATE:修改数据

UPDATE `user`
SET `email` = 'newfrog@example.com'
WHERE `username` = 'frog';

WHERE 是 UPDATE 的保险栓:没有它,全表所有行的 email 都会被改掉(线上事故大热门)。

-- 常见套路:按主键改(最精准)
UPDATE `user` SET `age` = 12 WHERE `id` = 1;

-- 一次改多列
UPDATE `user`
SET `age` = age + 1, `nickname` = '老蛙'
WHERE `email` LIKE '%@example.com';

4.3 DELETE:删除数据

DELETE FROM `user` WHERE `id` = 2;  -- 删指定行

同样,绝不允许不带 WHERE 的 DELETE。练习阶段可以试一把悲副作用:

DELETE FROM `user`;  -- 全表清空!

你会看到:Query OK, x rows affected,再 SELECT 就空了——记住这个教训。

删除数据两种模式:物理删除(DELETE,数据没了)和逻辑删除(加一列 is_deleted,改标志位)。业务上更爱逻辑删除,出事可恢复。

4.4 保命三招

  1. UPDATE / DELETE 前先 SELECT:把 WHERE 原样放到 SELECT 里看一眼,确认影响范围
  2. 主键来定位:改删尽量用 WHERE id = ?,别用模糊条件
  3. 先在练习库练:learn 库随便折腾

4.5 动手改

  1. 在 user 表插入你自己的信息,再 SELECT 查看
  2. 把你的年龄 UPDATE 改大 1 岁(用 age + 1)
  3. 加列 is_deleted BOOLEAN DEFAULT 0,练习「逻辑删除」你自己那行的标志位

4.6 小结

  • INSERT 写列清单 + VALUES,多行逗号分隔
  • UPDATE / DELETE 必须带 WHERE,操作前先 SELECT 确认
  • 业务里优先「逻辑删除」代替物理 DELETE

下一章:查询基础:SELECT 与 WHERE 🐸

📥 下载本章代码

ZIP 内含本章全部代码文件与说明,解压即用,与教程内容同步生成。