5.1 DELETE FROM 语句

SQL 中最容易做的就是删除数据。您可以非常快速地删除所有内容,甚至没有人会要求您进行任何确认。

让我们从最简单的场景开始:如何删除表中的一行

这是您最常看到的场景,通常是删除特定记录,标准查询通常如下所示:

DELETE FROM table
WHERE id = 133;

这是唯一一个不需要指定列名的查询:毕竟,数据会立即按行删除。

第二种情况是删除 id 列表给出的行,这里的一切也很简单:

DELETE FROM table
WHERE id IN (1, 2, 3,);

第三种情况是删除符合特定条件的行:

DELETE FROM table
WHERE condition;

比方说我们想解雇我们所有的程序员,那么我们需要写一个像这样的请求:

DELETE FROM employee
WHERE occupation = 'Programmer';

最后,如果你想删除所有记录,你可以这样写一个查询:

DELETE FROM table

这个简单的查询足以从表中删除所有记录。顺便说一句,在这种情况下不会有 Ctrl + Z。录音只是被删除而无法恢复,仅此而已。因此,更频繁地进行备份

5.2 删除所有内容

为了快速删除(让用户头疼),SQL 多了几个命令。

如何快速删除一个表中的所有数据?使用运算符 TRUNCATE

TRUNCATE TABLE table

表名中的一个拼写错误 - 并为您提供了几天的数据恢复。很高兴您不是数据库管理员。

如果您不仅需要删除表中的数据,还需要删除表本身,那么可以使用一个运算符 DROP

DROP TABLE table

顺便说一句,数据库模式也有类似的选项。如果要删除数据库本身,则:

DROP SCHEME database

或者:

DROP DATABASE database

您还可以使用 DROP 删除:

  • 事件
  • 功能
  • 程序
  • 指数
  • 看法
  • 扳机

这里有几个与数据删除相关的有趣故事:

休息日。由于系统管理员错误,GitLab 删除了 300 GB 的客户数据

sudo rm -rf,或 2017/01/31 的 GitLab.com 数据库事件编年史

硅谷“硅谷”——数据删除