PostgreSQL 18 中文参考文档(未翻译部分保留英文)🌐 切换到英文原版 →

6.3. 删除数据 #

到目前为止,我们已经介绍了如何写入数据以及如何变更既有数据。接下来探讨如何清除不再需要的无用数据。正如数据只能以整行形式写入一样,从数据表中清除数据同样只能整行整行地移除。如前所述,SQL 无法直接以内部物理指针指向单行,因此删除行同样只能通过指定匹配条件来界定删除范围。若表具有主键,可通过主键等值条件精确删除某一条唯一行;也可以根据业务条件批量清理一个数据范围,或一键抹除整表数据。

物理删除数据行使用 DELETE 命令,其语法结构与 UPDATE 极为相似。例如,从商品表中清理所有售价为 10 的商品:

DELETE FROM products WHERE price = 10;

如果你直接执行不带任何条件的裸语句:

DELETE FROM products;

那么表中的所有数据行都将被彻底一扫而空!开发者在执行无条件删除前必须格外谨慎。