DELETE语句用于删除表中数据,必须谨慎使用。基本语法为DELETE FROM 表名 WHERE 条件;若省略WHERE将删除全部数据。推荐通过SELECT验证条件、备份数据、使用事务确保安全。

在 MySQL 中,使用 DELETE 语句可以删除表中的数据记录。操作时需格外小心,因为删除是不可逆的,没有备份将无法恢复。
基本 DELETE 语法
删除数据的基本语法如下:
DELETE FROM 表名 WHERE 条件;说明:
- DELETE FROM 指定要从哪张表删除数据
- WHERE 子句用于指定删除哪些行,非常关键
- 如果不加 WHERE,会删除表中所有记录
带条件删除(推荐方式)
通常我们只想删除满足特定条件的数据。例如,删除用户表中 ID 为 5 的记录:
DELETE FROM users WHERE id = 5;也可以使用其他条件:
- 删除名字为 'John' 的用户:
DELETE FROM users WHERE name = 'John'; - 删除创建时间早于 2020 年的数据:
DELETE FROM logs WHERE created_at - 删除多个 ID 的记录:
DELETE FROM users WHERE id IN (1, 3, 5);
删除所有数据(谨慎操作)
如果想清空整张表,可以省略 WHERE 子句:
DELETE FROM users;这会删除 users 表中的所有行,但表结构保留。注意:这种方式逐行删除,效率低于 TRUNCATE,且会触发触发器。
安全删除建议
执行 DELETE 前建议采取以下措施:
- 先用 SELECT 验证条件是否正确:
SELECT * FROM users WHERE id = 5; - 操作前备份重要数据
- 在测试环境先验证语句
- 使用事务控制,便于回滚:
START TRANSACTION;
DELETE FROM users WHERE id = 5;
-- 确认无误再提交
COMMIT;
基本上就这些。只要写清楚条件,DELETE 是个简单直接的操作,但千万记得加上 WHERE,避免误删全表。










