Z
ZHANK
数据操作

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;