掌握 SQL 中的 DELETE 语句,核心在于理解作用、熟悉语法、重视条件、做好防护。下面从基础到进阶系统讲清楚。
DELETE 用于从表中删除行(记录),不是删表,也不是删列。
DROP TABLEALTER TABLE ... DROP COLUMNDELETEDELETE FROM 表名
WHERE 条件;
✅ 强烈建议:DELETE 一定要有 WHERE
DELETE FROM user
WHERE id = 1001;
DELETE FROM user
WHERE status = 'inactive';
DELETE FROM orders
WHERE user_id IN (
SELECT id FROM user WHERE banned = 1
);
DELETE FROM user;
➡ 整张表数据全没
✅ 正确习惯:
SELECT * FROM user WHERE ...;
先查,再删。
SELECT * FROM user WHERE id = 1;
DELETE FROM user WHERE id = 1;
BEGIN;
DELETE FROM user WHERE id = 1;
-- 检查无误
COMMIT;
-- 出错
ROLLBACK;
DELETE FROM log
WHERE create_time < '2023-01-01'
LIMIT 1000;
UPDATE user
SET deleted = 1
WHERE id = 1;
比物理删除更安全。
| 对比项 | DELETE | TRUNCATE |
|---|---|---|
| 是否可加 WHERE | ✅ | ❌ |
| 是否可回滚 | ✅(事务内) | ❌(多数库) |
| 速度 | 慢 | 快 |
| 触发器 | 触发 | 不触发 |
如果你愿意,我可以:
你目前用的是哪种数据库?
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。