PostgreSQL 存在选择、插入、更新和删除示例
存在于 PostgreSQL?
这款 PostgreSQL EXISTS 运算符测试子查询中是否存在一行或多行。这意味着该运算符与子查询一起使用。当在子查询中找到至少一行时,即表示满足 Exists 运算符。您可以将此操作与 SELECT、UPDATE、INSERT 和 DELETE 语句一起使用。
Postgres 存在查询语法
以下是 PostgreSQL EXISTS 语句:
WHERE EXISTS (subquery);
上面的语法表明 EXISTS 运算符接受一个参数,即子查询。子查询只是一个 选择语句 应该以 SELECT * 开头,而不是以列名或表达式的列表开头。
PostgreSQL 存在 SELECT 语句
让我们看看如何使用带有 EXISTS 运算符的 SELECT 语句。我们有以下表格:
书:
价格:
运行以下语句:
SELECT * FROM Book WHERE EXISTS (SELECT * FROM Price WHERE Book.id = Price.id);
这将返回以下内容:
上述命令应返回 Book 表中所有 id 与子查询中任何记录的 id 匹配的记录。只有一个 id 匹配。因此,只返回了一条记录。
PostgreSQL 存在 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 表中。
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);
我们正在更新 Price 表的价格列。我们的目标是让共享 ID 的商品价格相同。只有一行匹配,即 5。
但是,由于价格相同,即 205,因此没有进行更新。 如果有差异,则会进行更新。
Postgres 使用 DELETE 语句存在
A PostgreSQL DELETE 语句可以使用 EXISTS 运算符。以下是示例:
DELETE FROM Price WHERE EXISTS (SELECT * FROM Price2 WHERE Price.id = Price2.id);
现价格表如下:
id 为 5 的行已被删除。
PostgreSQL 使用 pgAdmin 的 Exists 语句
现在让我们看看如何使用 pgAdmin 执行这些操作:
如何在 PostgreSQL 使用 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) 单击执行按钮。
价格表现在应如下所示:
总结
- EXISTS 运算符测试子查询中是否存在某一行(些行)。
- 它与子查询一起使用,当子查询返回至少一行时即表示满足。
- 它与 SELECT、UPDATE、INSERT 和 DELETE 语句一起使用。