PostgreSQL EXISTS 与 SELECT Operator(示例)
⚡ 智能摘要
PostgreSQL EXISTS 是一个布尔运算符,用于测试相关子查询是否返回任何行,从而允许 SELECT、INSERT、UPDATE 和 DELETE 语句根据是否存在匹配记录来有效地筛选数据。
存在什么 PostgreSQL?
此 PostgreSQL EXISTS EXISTS 运算符用于检查子查询中是否存在指定的行。这意味着该运算符需要与子查询一起使用。当子查询中至少找到一行时,就认为 EXISTS 运算符的条件满足。您可以将此操作与 SELECT、UPDATE、INSERT 和 DELETE 语句一起使用。
PostgreSQL EXISTS 查询语法
以下是 PostgreSQL EXISTS 语句:
WHERE EXISTS (subquery);
上面的语法表明 EXISTS 运算符接受一个参数,即子查询。子查询只是一个 选择语句 应该以 SELECT * 开头,而不是以列名或表达式的列表开头。
PostgreSQL 使用 SELECT 语句查找 EXISTS
让我们看看如何在 SELECT 语句中使用 EXISTS 运算符。我们有以下几个表:
书:
价格:
运行以下语句:
SELECT * FROM Book WHERE EXISTS (SELECT * FROM Price WHERE Book.id = Price.id);
这将返回以下内容:
上述命令应返回 Book 表中所有 id 与子查询中任何记录的 id 匹配的记录。只有一个 id 匹配。因此,只返回了一条记录。
PostgreSQL EXISTS 与 INSERT 语句
我们可以在 插入语句.我们有以下3个表:
书:
价格:
价格2:
然后我们可以运行以下语句:
INSERT INTO Price SELECT id, price FROM Price2 WHERE EXISTS (SELECT id FROM Book WHERE Book.id = Price2.id);
现价格表如下:
匹配到 Price5 表中 ID 为 2 的行。然后,将该记录插入到 Price 表中。
PostgreSQL EXISTS 带有 UPDATE 语句
我们可以在 UPDATE 语句中使用 EXISTS 运算符。
运行以下查询:
UPDATE Price SET price = (SELECT price FROM Price2 WHERE Price2.id = Price.id) WHERE EXISTS (SELECT id, price FROM Price2 WHERE Price2.id = Price.id);
我们正在更新 Price 表的价格列。我们的目标是让共享 ID 的商品价格相同。只有一行匹配,即 5。
但是,由于价格相同,即 205,因此没有进行更新。 如果有差异,则会进行更新。
PostgreSQL EXISTS 带有 DELETE 语句
A PostgreSQL DELETE 语句可以使用 EXISTS 运算符。以下是示例:
DELETE FROM Price WHERE EXISTS (SELECT * FROM Price2 WHERE Price.id = Price2.id);
现价格表如下:
id 为 5 的行已被删除。
PostgreSQL 使用 pgAdmin 执行 EXISTS 语句
除了 SQL shell 之外,还可以通过 pgAdmin 界面以可视化的方式执行相同的 EXISTS 查询。现在让我们看看如何使用 pgAdmin 执行这些操作:
使用 SELECT 语句
以下是使用 EXISTS 查询的步骤 PostgreSQL 使用 pgAdmin 的 SELECT 语句:
步骤1) 登录您的pgAdmin帐户。打开pgAdmin并使用您的凭据登录您的帐户。
步骤2) 创建演示数据库。
- 在左侧的导航栏中,单击数据库。
- 单击“演示”。
步骤3) 在查询编辑器中输入以下查询:
SELECT * FROM Book WHERE EXISTS (SELECT * FROM Price WHERE Book.id = Price.id);
步骤4) 单击执行按钮。
它应该返回以下内容:
使用 INSERT 语句
要通过 pgAdmin 完成相同操作,请执行以下操作:
步骤1) 登录您的 pgAdmin 帐户。
步骤2)
- 在左侧的导航栏中,单击数据库。
- 单击“演示”。
步骤3) 在查询编辑器中输入查询:
INSERT INTO Price SELECT id, price FROM Price2 WHERE EXISTS (SELECT id FROM Book WHERE Book.id = Price2.id);
步骤4) 单击执行按钮。
价格表现在应如下所示:
使用 UPDATE 语句
要通过 pgAdmin 完成相同操作,请执行以下操作:
步骤1) 登录您的 pgAdmin 帐户。
步骤2)
- 在左侧的导航栏中,单击数据库。
- 单击“演示”。
步骤3) 在查询编辑器中输入查询:
UPDATE Price SET price = (SELECT price FROM Price2 WHERE Price2.id = Price.id) WHERE EXISTS (SELECT id, price FROM Price2 WHERE Price2.id = Price.id);
步骤4) 单击执行按钮。
价格表现在应如下所示:
使用 DELETE 语句
要通过 pgAdmin 完成相同操作,请执行以下操作:
步骤1) 登录您的 pgAdmin 帐户。
步骤2)
- 在左侧的导航栏中,单击数据库。
- 单击“演示”。
步骤3) 在查询编辑器中输入查询:
DELETE FROM Price WHERE EXISTS (SELECT * FROM Price2 WHERE Price.id = Price2.id);
步骤4) 单击执行按钮。
价格表现在应如下所示:






















