PostgreSQL 存在选择、插入、更新和删除示例

存在于 PostgreSQL?

这款 PostgreSQL EXISTS 运算符测试子查询中是否存在一行或多行。这意味着该运算符与子查询一起使用。当在子查询中找到至少一行时,即表示满足 Exists 运算符。您可以将此操作与 SELECT、UPDATE、INSERT 和 DELETE 语句一起使用。

Postgres 存在查询语法

以下是 PostgreSQL EXISTS 语句:

WHERE EXISTS (subquery);

上面的语法表明 EXISTS 运算符接受一个参数,即子查询。子查询只是一个 选择语句 应该以 SELECT * 开头,而不是以列名或表达式的列表开头。

PostgreSQL 存在 SELECT 语句

让我们看看如何使用带有 EXISTS 运算符的 SELECT 语句。我们有以下表格:

书:

PostgreSQL 存在 SELECT 语句

价格:

PostgreSQL 存在 SELECT 语句

运行以下语句:

SELECT *
FROM Book
WHERE EXISTS (SELECT *
              FROM Price
              WHERE Book.id = Price.id);

这将返回以下内容:

PostgreSQL 存在 SELECT 语句

上述命令应返回 Book 表中所有 id 与子查询中任何记录的 id 匹配的记录。只有一个 id 匹配。因此,只返回了一条记录。

PostgreSQL 存在 INSERT 语句

我们可以在 插入语句.我们有以下3个表:

书:

PostgreSQL 存在 INSERT 语句

价格:

PostgreSQL 存在 INSERT 语句

价格2:

PostgreSQL 存在 INSERT 语句

然后我们可以运行以下语句:

INSERT INTO Price
SELECT id, price
FROM Price2
WHERE EXISTS (SELECT id
              FROM Book
              WHERE Book.id = Price2.id);

现价格表如下:

PostgreSQL 存在 INSERT 语句

匹配到 Price5 表中 ID 为 2 的行。然后,将该记录插入到 Price 表中。

Postgres 使用 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);

Postgres 使用 UPDATE 语句存在

我们正在更新 Price 表的价格列。我们的目标是让共享 ID 的商品价格相同。只有一行匹配,即 5。

但是,由于价格相同,即 205,因此没有进行更新。 如果有差异,则会进行更新。

Postgres 使用 DELETE 语句存在

A PostgreSQL DELETE 语句可以使用 EXISTS 运算符。以下是示例:

DELETE FROM Price
WHERE EXISTS (SELECT *
              FROM Price2
              WHERE Price.id = Price2.id);

现价格表如下:

Postgres 使用 DELETE 语句存在

id 为 5 的行已被删除。

PostgreSQL 使用 pgAdmin 的 Exists 语句

现在让我们看看如何使用 pgAdmin 执行这些操作:

如何在 PostgreSQL 使用 pgAdmin 的 SELECT 语句

以下是使用 Exists 查询的步骤 PostgreSQL 使用 pgAdmin 的 SELECT 语句:

步骤 1)登录你的 pgAdmin 账户

打开 pgAdmin 并使用您的凭据登录到您的帐户

步骤 2)创建演示数据库

  1. 从左侧导航栏中单击数据库。
  2. 单击“演示”。

PostgreSQL 使用 pgAdmin 的 Exists 语句

步骤 3)输入查询

在查询编辑器中输入以下查询:

SELECT *
FROM Book
WHERE EXISTS (SELECT *
              FROM Price
              WHERE Book.id = Price.id);

步骤4)执行查询

单击执行按钮

PostgreSQL 使用 pgAdmin 的 Exists 语句

它应该返回以下内容:

PostgreSQL 使用 pgAdmin 的 Exists 语句

使用 INSERT 语句

要通过 pgAdmin 完成相同操作,请执行以下操作:

步骤1) 登录您的 pgAdmin 帐户。

步骤2)

  1. 从左侧导航栏中单击数据库。
  2. 单击“演示”。

存在语句 PostgreSQL 使用 pgAdmin

步骤3) 在查询编辑器中输入查询:

INSERT INTO Price
SELECT id, price
FROM Price2
WHERE EXISTS (SELECT id
              FROM Book
              WHERE Book.id = Price2.id);

步骤4) 单击执行按钮。

存在语句 PostgreSQL 使用 pgAdmin

价格表现在应如下所示:

存在语句 PostgreSQL 使用 pgAdmin

使用 UPDATE 语句

要通过 pgAdmin 完成相同操作,请执行以下操作:

步骤1) 登录您的 pgAdmin 帐户。

步骤2)

  1. 从左侧导航栏中单击数据库。
  2. 单击“演示”。

存在语句 PostgreSQL 使用 pgAdmin

步骤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) 单击执行按钮。

PostgreSQL 使用 pgAdmin 的 Exists 语句

价格表现在应如下所示:

PostgreSQL 使用 pgAdmin 的 Exists 语句

使用 DELETE 语句

要通过 pgAdmin 完成相同操作,请执行以下操作:

步骤1) 登录您的 pgAdmin 帐户。

步骤2)

  1. 从左侧导航栏中单击数据库。
  2. 单击“演示”。

PostgreSQL 使用 pgAdmin 的 Exists 语句

步骤3) 在查询编辑器中输入查询:

DELETE FROM Price
WHERE EXISTS (SELECT *
              FROM Price2
              WHERE Price.id = Price2.id);

步骤4) 单击执行按钮。

PostgreSQL 使用 pgAdmin 的 Exists 语句

价格表现在应如下所示:

PostgreSQL 使用 pgAdmin 的 Exists 语句

总结

  • EXISTS 运算符测试子查询中是否存在某一行(些行)。
  • 它与子查询一起使用,当子查询返回至少一行时即表示满足。
  • 它与 SELECT、UPDATE、INSERT 和 DELETE 语句一起使用。

下载本教程使用的数据库