PostgreSQL EXISTS 条件2025年3月17日 | 阅读 8 分钟 在本节中,我们将理解 PostgreSQL EXISTS 条件 的工作原理,它用于 WHERE 子句 来评估子查询中的现有行。我们还将看到 EXISTS 条件 在 INSERT、SELECT、NOT EXISTS、NULL、UPDATE 和 DELETE 等不同查询中的示例。 PostgreSQL EXISTS 条件介绍在 PostgreSQL 中,EXISTS 条件可以与 SELECT、INSERT、UPDATE 和 DELETE 命令结合使用。换句话说,我们可以说 EXISTS 条件用于检查子查询中是否存在任何数据,并在子查询返回多条记录时返回 true。 它用于与子查询分组,并测试子查询中记录的存在性。PostgreSQL EXISTS 条件 是一种布尔运算符,它返回真或假的结果。换句话说,我们可以说:
PostgreSQL EXISTS 条件语法PostgreSQL EXISTS 条件的语法如下: Exists 条件接受一个参数,该参数称为子查询。它经常与关联子查询一起使用。 EXISTS 条件 的输出取决于子查询是否获取到任何行,而不取决于行的信息。因此,子查询的 SELECT 命令 中出现的列并不重要。 在这种情况下,我们将使用以下语法来表示 EXISTS 条件: 在上面的语法中,我们还使用了 NOT 运算符,它可以帮助我们否定 EXISTS 条件。当子查询不返回任何行时,它将返回 TRUE,否则返回 FALSE。 在上面的语法中,我们使用了以下参数:
注意
PostgreSQL EXISTS 条件示例让我们来看一些示例,以了解 PostgreSQL EXISTS 条件 的工作原理。 首先,我们将看到一个 EXISTS 条件的示例,以了解 PostgreSQL 中 EXISTS 运算符的工作原理。 为此,我们使用 Javatpoint 数据库中的 Client 和 Client_details 表。 在下面的示例中,我们识别出那些在 client_details 表中至少有一条记录,并且 client_salary 大于 30000 的客户信息。 以下命令将返回那些薪资超过 30000 的客户信息: 输出 成功执行上述命令后,我们将获得以下结果: ![]() 正如我们在上面的屏幕截图中看到的,子查询分析了 Client_details 表,以识别 Client 表中每个客户的详细信息的以下场景:
PostgreSQL EXISTS 条件与 INSERT 命令示例我们将展示如何将 EXISTS 条件 与 INSERT 命令一起使用。 为此,我们使用 Organization 数据库中的 employee、department 和 Jobs 表,将记录从一个表插入到另一个表。 在以下示例中,我们将记录从 employee 表插入到 department 表。我们从 employee 表中提取 phone 和 address 列的记录,其中两个表中的 emp_id 和 job_id 相等。 输出 执行上述命令后,我们将看到以下消息窗口,显示值已成功插入到 department 表中。 ![]() 为了检查记录是否已插入到 department 表中,我们将使用 SELECT 命令,如下所示: 输出 执行上述命令后,我们将获得以下输出 ![]() 在上面的屏幕截图中,我们可以看到 PostgreSQL EXISTS 条件已成功将四条记录插入到 department 表中。 PostgreSQL EXISTS 条件与 SELECT 命令示例在下面的示例中,我们将展示如何将 EXISTS 条件与带有两个条件的 SELECT 命令一起使用。 我们使用 Javatpoint 数据库中的 Client 和 Client_details 表来从一个表中选择所有记录。 我们正在将 EXISTS 条件与 WHERE 子句一起使用,正如我们可以在以下命令中看到的: 输出 执行上述命令后,我们将获得以下输出 ![]() 在上面的子查询语句中,我们使用了 SELECT 1,这有助于提高性能,因为在 Exists 条件中不需要列输出,因为只有返回行的存在才重要。 正如我们在上面的屏幕截图中看到的,PostgreSQL EXISTS 条件将从 Client 表中返回所有记录,其中 Client_details 表中至少有一条记录具有相同的 Client_id。 使用 NOT EXISTS 条件的 PostgreSQL EXIST 条件示例在 PostgreSQL 中,我们也可以将 NOT 条件与 EXISTS 条件结合使用。 PostgreSQL NOT 运算符与 EXISTS 条件用于获取值不匹配列表值中的那些行。 注意:NOT 条件否定了 EXISTS 条件的输出。正如我们所知,NOT 条件与 EXISTS 条件完全相反,这意味着:
为此,我们使用与上述示例相同的表(Client 和 client_details)。 以下示例显示了 NOT 条件与 EXISTS 条件,以获取不存在于 Client_details 表中的客户信息。 输出 执行上述命令后,我们将得到以下输出: ![]() 在上面的示例中,PostgreSQL EXISTS 示例将返回 Client 表中的所有记录,其中在给定 client_id 的 client_details 表中没有记录。 使用 EXISTS 条件与 NULL 的示例在 PostgreSQL 中,我们也可以将 EXISTS 条件与 NULL 一起使用。 PostgreSQL EXISTS 条件与 NULL 用于获取子查询返回 NULL 的那些行,而 EXISTS 条件将返回 TRUE。 为此,我们使用 Javatpoint 数据库中的 employee 表。 让我们看下面的示例,以了解 Exists 条件如何与 NULL 一起工作。 输出 执行上述命令后,我们将获得以下输出 ![]() 在上面的示例中,子查询语句返回了 NULL。因此,该命令将返回 employee 表中的所有行。 PostgreSQL EXISTS 条件与 UPDATE 命令示例在下面的示例中,我们将展示如何将 EXISTS 条件与 UPDATE 命令一起使用。 为此,我们使用 Javatpoint 数据库中的 Summer_fruits 和 Winter_fruits 表。 在以下命令中,PostgreSQL EXISTS 条件用于更新 summer_fruits 表中的 Fruits_name 列值,使其等于 winter_fruits_name 列(来自 winter_fruits 表),其中 winter_fruits' wf_id 列等于 summer_fruits' sf_id 列。 输出 执行上述命令后,我们将得到以下输出,其中我们可以看到 summer_fruits 表已成功更新。 ![]() 我们现在将使用 Select 命令来检查 summer_fruits 表中的特定记录是否已更新: 输出 执行上述命令后,我们将得到以下结果: ![]() PostgreSQL EXISTS 条件与 DELETE 命令示例在下面的示例中,我们将展示如何将 EXISTS 条件与 DELETE 命令一起使用。 在下面的示例中,我们将使用 JavatPoint 数据库中的 Course 和 Course_categories 表来删除表中的特定记录。 在以下命令中,PostgreSQL EXISTS 条件用于从 Course 表中删除所有记录,其中 Course 表中的 course_id 与 Course_categories 表中的 course_category_id 相等。 输出 执行上述命令后,我们将看到以下消息窗口,显示记录已成功从 Course 表中删除。 ![]() 我们现在将使用 Select 命令来检查特定记录是否已从 Course 表中删除。 输出 成功执行上述命令后,我们将得到以下输出: ![]() 概述在 PostgreSQL EXISTS 条件部分,我们学习了以下主题: PostgreSQL EXISTS 条件的使用提供了 EXISTS 条件的优点,可以评估子查询中的行存在性。
下一个主题PostgreSQL 视图 |
我们请求您订阅我们的新闻通讯以获取最新更新。