UPDATE 与 DELETE
掌握条件更新、批量删除、安全操作注意事项
UPDATE 与 DELETE
修改和删除数据是日常操作,但也是最危险的操作——一条没有 WHERE 的 DELETE 会清空整张表。
学完本章你将: 掌握条件更新/删除、批量操作、安全习惯。
UPDATE —— 修改数据
sql
-- 修改一行
UPDATE users SET age = 21 WHERE id = 1;
-- 修改多列
UPDATE users SET age = 21, city = '北京' WHERE id = 1;
-- 批量修改
UPDATE users SET vip = 1 WHERE total_spent > 10000;
-- 基于计算
UPDATE users SET age = age + 1; -- 所有人年龄 +1
⚠️ 忘记 WHERE 的后果:
UPDATE users SET age = 21会把所有人的年龄改成 21。写 UPDATE 前先写 WHERE,再写 SET。 生产环境先用 SELECT 确认要改的行。
DELETE —— 删除数据
sql
-- 删除一行
DELETE FROM users WHERE id = 1;
-- 批量删除
DELETE FROM orders WHERE created_at < '2020-01-01';
-- ⚠️ 清空全表
-- DELETE FROM users; -- 一行行删,慢但可回滚
-- TRUNCATE TABLE users; -- 瞬间清空,不可回滚(MySQL)
安全操作习惯
sql
-- 1. 先用 SELECT 确认
SELECT * FROM users WHERE id = 1;
-- 确认后再改
UPDATE users SET age = 21 WHERE id = 1;
-- 2. 开启事务,确认无误再提交
-- BEGIN;
-- DELETE FROM users WHERE id = 999;
-- SELECT * FROM users WHERE id = 999; -- 确认
-- COMMIT; -- 或 ROLLBACK;