DELETE
从表中移除记录。同样必须谨慎使用 WHERE 子句。
基本语法
DELETE FROM table_name
WHERE condition;
示例
-- 删除 id 为 102 的记录
DELETE FROM student
WHERE id = 102;
-- 删除所有创建时间早于 2020 年的日志
DELETE FROM logs
WHERE created_at < '2020-01-01';
⚠️ 重要区别:DELETE vs TRUNCATE
DELETE:DML 操作,逐行删除,可回滚,触发器会生效,速度较慢。
TRUNCATE TABLE:DDL 操作,重置表(清空所有数据并重置自增 ID),不可回滚,速度极快。
TRUNCATE TABLE student; -- 清空整张表
逻辑删除 vs 物理删除
在生产环境中,建议很少直接使用 DELETE 物理删除数据,而是采用逻辑删除:
- 增加一个 is_deleted 或 deleted_at 字段。
- 更新操作:UPDATE users SET is_deleted = 1, deleted_at = NOW() WHERE id = 1;
- 查询时过滤:SELECT * FROM users WHERE is_deleted = 0;

浙公网安备 33010602011771号