DELETE语句用于删除表中数据,需谨慎使用WHERE条件防止误删;无WHERE将清空全表;可通过主键精确删除单行;LIMIT可限制删除数量;建议结合事务确保操作安全。
在 MySQL 中,DELETE 语句用于从数据库表中删除一行或多行数据。使用时需要特别注意条件的设定,避免误删数据。
DELETE 语句的基本格式如下:
DELETE FROM 表名 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 条件,会删除表中所有数据:
这会清空 users 表的所有行,但表结构依然存在。这种操作风险极高,建议提前备份或使用事务控制。
有时只想删除前几条匹配的记录,可以用 LIMIT:
DELETE FROM users WHERE age = 25 LIMIT 1;这样只删除第一条 age=25 的记录,适用于不确定结果数量的场景。
在执行 DELETE 前开启事务,可以方便回滚:
START TRANSACTION;如果发现删错了,可以用 ROLLBACK 恢复数据。
基本上就这些。关键是写好 WHERE 条件,避免误操作。生产环境建议先用 SELECT 验证条件是否准确。