DELETE语句用于删除表中数据,需谨慎使用WHERE条件防止误删;无WHERE将清空全表;可通过主键精确删除单行;LIMIT可限制删除数量;建议结合事务确保操作安全。

在 MySQL 中,DELETE 语句用于从数据库表中删除一行或多行数据。使用时需要特别注意条件的设定,避免误删数据。
基本语法
DELETE 语句的基本格式如下:
DELETE FROM 表名 WHERE 条件;
说明:
- 表名:要删除数据的目标表。
- WHERE 条件:指定哪些行需要被删除。这个条件非常重要,没有 WHERE 子句会删除表中所有数据。
删除满足条件的数据
例如,有一个用户表 users,结构如下:
id | name | age ---|-------|---- 1 | 张三 | 25 2 | 李四 | 30 3 | 王五 | 25
如果想删除年龄为 25 的用户,可以执行:
DELETE FROM users WHERE age = 25;
执行后,张三和王五这两条记录将被删除。
删除单条记录
通过主键精确删除某一条数据更安全。比如删除 id 为 2 的用户:
DELETE FROM users WHERE id = 2;
这样只会删除李四这一行,不会影响其他数据。
清空整个表(慎用)
如果不加 WHERE 条件,会删除表中所有数据:
DELETE FROM users;
这会清空 users 表的所有行,但表结构依然存在。这种操作风险极高,建议提前备份或使用事务控制。
使用 LIMIT 限制删除数量
有时只想删除前几条匹配的记录,可以用 LIMIT:
DELETE FROM users WHERE age = 25 LIMIT 1;
这样只删除第一条 age=25 的记录,适用于不确定结果数量的场景。
结合事务确保安全
在执行 DELETE 前开启事务,可以方便回滚:
START TRANSACTION;
DELETE FROM users WHERE age — 检查结果是否正确
COMMIT; — 或 ROLLBACK;
如果发现删错了,可以用 ROLLBACK 恢复数据。
基本上就这些。关键是写好 WHERE 条件,避免误操作。生产环境建议先用 SELECT 验证条件是否准确。


