PostgreSQL教程

PostgreSQL Delete

在本节中,我们将学习如何使用PostgreSQL中的Delete命令从特定表中删除数据。
DELETE命令用于从表中删除所有现有记录。 WHERE 子句用于 删除所选记录 >否则,所有数据将被消除。
注意: TRUNCATE命令提供了一种更快的技术来删除表中的所有行。

语法

DELETE命令的基本语法如下:
DELETE FROM table_name  
WHERE [condition];  
上面的 语法中使用了以下参数:
参数 说明
table_name 它用于在DELETE FROM子句中定义要从中删除数据的表。
Where 子句 WHERE子句用于描述应删除哪些记录。如果我们忽略WHERE子句,表中的所有记录将被删除。这是一个可选参数。
DELETE命令返回已删除的行数。如果未删除任何行,则Delete命令将返回 。有时它可能与WHERE子句中的条件所标识的行数不同,因为该表可能具有BEFORE DELETE触发器。在使用命令删除表中的记录时,我们应该谨慎。
在这种情况下,我们需要验证引用另一个表中一个或多个列的条件,因此,可以使用 使用条款,如下所示:
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删除命令示例

在这里,我们将使用在 PostgreSQL插入命令部分中创建的department和department_tmp 表。 PostgreSQL 教程
以下命令将帮助我们显示 department表的记录:
SELECT * FROM department;
PostgreSQL删除

带有WHERE子句的PostgreSQL DELETE示例

以下内容命令用于删除 dept_id 列中值为6的行:
DELETE FROM department
WHERE dept_id = 6;

PostgreSQL删除
执行上述命令后,它将返回带有 DELETE 1 ,这意味着已从department表中删除了一行。
注意: 如果我们不使用WHERE子句,则会删除整个记录。
如果 department表没有任何带有 dept_id 7 的行,则DELETE命令起作用,并以 删除0
例如
PostgreSQL Delete

PostgreSQL DELETE USING命令的示例

如果我们要删除 department表中所有值为 department_tmp 表中的> dept_id 列,我们需要遵循以下过程:
Step1
,我们将在以下命令的帮助下看到 department_tmp 表数据:
SELECT  * FROM department_tmp;
执行上述命令后,我们将看到 department_tmp 的表结构。
PostgreSQL Delete
Step2
然后,我们将使用以下借助 使用条件删除命令,以删除 department表中的行:
DELETE FROM department 
USING department_tmp
WHERE
department.dept_id = department_tmp.dept_id;
Step3
最后,我们将查询 department表以检查删除操作是否正常。

PostgreSQL从表中删除所有行

在这种情况下,我们不使用下面的DELETE命令中的WHERE条件从department表中删除所有行:
DELETE FROM department;
如下面的图片所示,department表现在为空。
PostgreSQL删除
此后,我们将使用DELETE命令的返回条件删除 department_tmp 表中的所有行并返回删除的行:
DELETE FROM department_tmp 
RETURNING *;

PostgreSQL删除
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4