如何删除表中数据_mysql delete基础操作

1次阅读

delete语句可删除表中数据,需谨慎使用where条件以防误删;truncate用于快速清空表并重置自增主键,不可回滚;drop则彻底删除表结构和数据。

如何删除表中数据_mysql delete基础操作

直接用 DELETE 语句即可删除表中数据,但务必注意 WHERE 条件是否写对,否则可能误删整张表的数据。

删除指定条件的行

使用 DELETE FROM 表名 WHERE 条件 可精准删除满足条件的记录。例如:

  • 删除用户表中 ID 为 5 的记录:DELETE FROM users WHERE id = 5;
  • 删除所有状态为“已注销”的用户:DELETE FROM users WHERE status = 'disabled';

⚠️ 没有 WHERE 子句会清空整张表(但保留表结构),请务必确认条件再执行。

清空整张表(保留结构)

若想快速删除全部数据且重置自增主键,推荐用 TRUNCATE table 表名

  • 比 DELETE 更快,不记录单行日志,不可回滚
  • 自动重置 AUTO_INCREMENT 计数器(如从 1 重新开始)
  • 不能带 WHERE,也不支持事务回滚

例如:TRUNCATE TABLE logs;

安全操作建议

执行 DELETE 前养成以下习惯,避免误操作:

  • 先用 select * FROM 表名 WHERE 条件; 预览将要删除的数据
  • 在事务中执行(BEGIN;DELETE ...; → 确认后 COMMIT;,否则 ROLLBACK;
  • 生产环境禁止直接执行无 WHERE 的 DELETE,可用权限控制或加 SQL_MODE 限制

DELETE 和 DROP 的区别

别混淆这三个操作:

  • DELETE FROM table;:删数据,留表结构,可加条件,可回滚
  • TRUNCATE TABLE table;:删全部数据,留表结构,不可回滚,重置自增
  • DROP TABLE table;:删表(结构 + 数据),不可逆
text=ZqhQzanResources