PostgreSQL 创建视图及示例
什么是 PostgreSQL 视图?
在 PostgreSQL 中,视图是一个伪表。这意味着视图不是一个真实的表。但是,我们可以像普通表一样 SELECT 它。视图可以包含表的所有或部分列。视图也可以是多个表的表示。
表被称为基表。在创建视图时,您只需要创建一个查询,然后给它一个名称,这使其成为包装复杂且常用的查询的有用工具。
创建 PostgreSQL 视图
要创建 PostgreSQL 视图,我们使用 CREATE VIEW 语句。以下是此语句的语法
CREATE [OR REPLACE] VIEW view-name AS SELECT column(s) FROM table(s) [WHERE condition(s)];
OR REPLACE 参数将在视图已存在时替换它。如果省略,并且视图已存在,则会返回错误。
view-name 参数是您需要创建的视图的名称。
WHERE 条件是可选的,并且必须满足才能将任何记录添加到视图中。
考虑下表 Price
价格
让我们从上表中创建一个视图
CREATE VIEW Price_View AS SELECT id, price FROM Price WHERE price > 200;
上述命令将创建一个基于 SELECT 语句的视图。只有价格大于 200 的记录将被添加到视图中。视图已被命名为 Price_View。让我们查询它以查看其内容
SELECT * FROM Price_View;
这将返回以下内容
即使基表有 4 条记录,只有 2 条被添加到视图中。
这里,我们只能向视图添加一列。让我们创建一个只包含 Price 表一列的视图
CREATE VIEW Price_View2 AS SELECT price FROM Price WHERE price > 200;
视图已被命名为 Price_View2,并且只包含 Price 表的价格列。让我们查询视图以查看其内容
SELECT * FROM Price_View2;
这将返回以下内容
更改 PostgreSQL 视图
视图的定义可以在不删除它的情况下进行更改。这可以通过使用 CREATE OR REPLACE VIEW 语句来完成。
让我们通过更新名为 Price_View2 的视图来演示这一点。
Price_View2
Book 表如下
Book
Price 表如下
价格
以下查询将帮助我们更新视图 Price_View2
CREATE or REPLACE VIEW Price_View2 AS SELECT price, name FROM Book INNER JOIN Price ON Book.id = Price.id WHERE price > 200;
现在让我们查询视图以查看其内容
视图已被更改,现在我们有了来自两个不同表的两列。这是通过 JOIN 语句实现的。
删除 PostgreSQL 视图
任何时候您需要删除 PostgreSQL 视图。您可以使用 DROP VIEW 语句。以下是该语句的语法
DROP VIEW [IF EXISTS] view-name;
参数 view-name是要删除的视图的名称。
在此语法中,IF EXISTS 是可选的。如果您不指定它并尝试删除一个不存在的视图,您将收到一个错误。
例如,要删除名为 Price_View2 的视图,我们可以运行以下语句
DROP VIEW Price_View2;
视图将被删除。
使用 pgAdmin
现在让我们看看如何使用 pgAdmin 执行这些操作。
创建 PostgreSQL 视图
要通过 pgAdmin 完成相同的操作,请执行此操作
步骤 1) 登录您的 pgAdmin 账户。
步骤 2)
- 在左侧的导航栏中,点击 Databases。
- 点击 Demo。
步骤 3) 在查询编辑器中输入查询
CREATE VIEW Price_View AS SELECT id, price FROM Price WHERE price > 200;
步骤 4) 点击 Execute 按钮。
步骤 5)要查看视图的内容,请执行以下操作
- 在查询编辑器中键入以下命令
- 点击 Execute 按钮。
SELECT * FROM Price_View;
这将返回以下内容
要创建视图 Price_View2,请执行以下操作
步骤 1)在查询编辑器中键入以下查询
CREATE VIEW Price_View2 AS SELECT price FROM Price WHERE price > 200;
步骤 2)单击“执行”按钮。
步骤 3)要查看视图的内容,请执行以下操作
- 在查询编辑器中键入以下查询
- 点击 Execute 按钮。
SELECT * FROM Price_View2;
这将返回以下内容
更改 PostgreSQL 视图
要通过 pgAdmin 完成相同的操作,请执行此操作
步骤 1) 登录您的 pgAdmin 账户。
步骤 2)
- 在左侧的导航栏中,点击 Databases。
- 点击 Demo。
步骤 3) 在查询编辑器中输入查询
CREATE or REPLACE VIEW Price_View2 AS SELECT price, name FROM Book INNER JOIN Price ON Book.id = Price.id WHERE price > 200;
步骤 4) 点击 Execute 按钮。
步骤 5)在查询编辑器中键入以下查询
SELECT * FROM Price_View2;
这将返回以下内容
删除 PostgreSQL 视图
要通过 pgAdmin 完成相同的操作,请执行此操作
步骤 1) 登录您的 pgAdmin 账户。
步骤 2)
- 在左侧的导航栏中,点击 Databases。
- 点击 Demo。
步骤 3) 在查询编辑器中输入查询
DROP VIEW Price_View2;
步骤 4) 点击 Execute 按钮。
视图将被删除。
摘要
- PostgreSQL 视图是一个伪表,这意味着它不是一个真实的表。
- 视图可以从一个或多个表中创建。
- 从中创建视图的表称为基表。
- 要创建视图,我们使用 CREATE OR REPLACE VIEW 语句。
- 要更改视图的定义,我们使用 CREATE OR REPLACE VIEW 语句。
- 要删除视图,我们使用 DROP VIEW 语句。