PostgreSQL Delete语句

在本节中,我们将学习如何使用 PostgreSQL 中的 Delete 命令从特定表中删除数据。

DELETE 命令用于从表中删除所有现有记录。WHERE子句用于删除选定的记录,否则所有数据将被删除。

Delete命令句法

DELETE 命令的基本语法如下:

DELETE FROM table_name    
WHERE [condition];    

上述语法中使用了以下参数:

参数 描述
table_name 它用于在 DELETE FROM 子句中定义我们要从中删除数据的表。
Where子句 WHERE 子句用于描述应删除哪些记录。如果我们忽略 WHERE 子句,表中的所有记录都将被删除。它是一个可选参数。

 DELETE 命令返回删除的行数。如果没有删除任何行,Delete 命令将返回零。有时它可能与 WHERE 子句中的条件标识的行数不相似,因为表可能有 BEFORE DELETE 触发器。使用删除表中记录的命令时要谨慎。

以防万一,我们需要验证引用另一个表中的一个或多个列的条件,为此,我们可以使用USING 子句,如下所示:

DELETE FROM table  
USING another_table  
WHERE table.id = another_table.id AND  

如果我们不需要使用USING 子句,我们可以使用子查询,如下面的命令所示:

DELETE FROM table  
WHERE table.id = (SELECT id FROM another_table);  

PostgreSQL Delete命令示例

在这里,我们将使用我们在PostgreSQL教程的PostgreSQL 插入命令部分创建的department 和 department_tmp表。

下面的命令将帮助我们显示部门表的记录:

SELECT * FROM department;  

带 WHERE 子句的 PostgreSQL DELETE 示例

以下命令用于删除dept_id列中值为 6 的行:

DELETE FROM department  
WHERE dept_id = 6;  

执行上述命令后,会返回一条DELETE 1的消息,表示部门表中删除了一行。

如果department 表没有任何dept_id 为 7的行,则 DELETE 命令有效,并返回为DELETE 0。

热门文章

优秀文章