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;
posted @ 2026-08-31 23:09  IT_IOS_MAN  阅读(14)  评论(0)    收藏  举报