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

价格

Creating PostgreSQL Views

让我们从上表中创建一个视图

CREATE VIEW Price_View AS
  SELECT id, price
  FROM Price
  WHERE price > 200;

上述命令将创建一个基于 SELECT 语句的视图。只有价格大于 200 的记录将被添加到视图中。视图已被命名为 Price_View。让我们查询它以查看其内容

SELECT *
FROM Price_View;

这将返回以下内容

Creating PostgreSQL Views

即使基表有 4 条记录,只有 2 条被添加到视图中。

这里,我们只能向视图添加一列。让我们创建一个只包含 Price 表一列的视图

CREATE VIEW Price_View2 AS
  SELECT price
  FROM Price
  WHERE price > 200;

视图已被命名为 Price_View2,并且只包含 Price 表的价格列。让我们查询视图以查看其内容

SELECT *
FROM Price_View2;

这将返回以下内容

Creating PostgreSQL Views

更改 PostgreSQL 视图

视图的定义可以在不删除它的情况下进行更改。这可以通过使用 CREATE OR REPLACE VIEW 语句来完成。

让我们通过更新名为 Price_View2 的视图来演示这一点。

Price_View2

Changing PostgreSQL Views

Book 表如下

Book

Changing PostgreSQL Views

Price 表如下

价格

Changing PostgreSQL Views

以下查询将帮助我们更新视图 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;

现在让我们查询视图以查看其内容

Changing PostgreSQL Views

视图已被更改,现在我们有了来自两个不同表的两列。这是通过 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)

  1. 在左侧的导航栏中,点击 Databases。
  2. 点击 Demo。

Creating PostgreSQL Views Using pgAdmin

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

CREATE VIEW Price_View AS
  SELECT id, price
  FROM Price
  WHERE price > 200;

步骤 4) 点击 Execute 按钮。

Creating PostgreSQL Views Using pgAdmin

步骤 5)要查看视图的内容,请执行以下操作

  1. 在查询编辑器中键入以下命令
  2. SELECT *
    FROM Price_View;
    
  3. 点击 Execute 按钮。

Creating PostgreSQL Views Using pgAdmin

这将返回以下内容

Creating PostgreSQL Views Using pgAdmin

要创建视图 Price_View2,请执行以下操作

步骤 1)在查询编辑器中键入以下查询

CREATE VIEW Price_View2 AS
  SELECT price
  FROM Price
  WHERE price > 200;

步骤 2)单击“执行”按钮。

Creating PostgreSQL Views Using pgAdmin

步骤 3)要查看视图的内容,请执行以下操作

  1. 在查询编辑器中键入以下查询
  2. SELECT *
    FROM Price_View2;
    
  3. 点击 Execute 按钮。

Creating PostgreSQL Views Using pgAdmin

这将返回以下内容

Creating PostgreSQL Views Using pgAdmin

更改 PostgreSQL 视图

要通过 pgAdmin 完成相同的操作,请执行此操作

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

步骤 2)

  1. 在左侧的导航栏中,点击 Databases。
  2. 点击 Demo。

Changing PostgreSQL Views Using pgAdmin

步骤 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 按钮。

Changing PostgreSQL Views Using pgAdmin

步骤 5)在查询编辑器中键入以下查询

SELECT * 
FROM Price_View2;

这将返回以下内容

Changing PostgreSQL Views Using pgAdmin

删除 PostgreSQL 视图

要通过 pgAdmin 完成相同的操作,请执行此操作

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

步骤 2)

  1. 在左侧的导航栏中,点击 Databases。
  2. 点击 Demo。

Deleting PostgreSQL Views Using pgAdmin

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

DROP VIEW Price_View2;

步骤 4) 点击 Execute 按钮。

Deleting PostgreSQL Views Using pgAdmin

视图将被删除。

摘要

  • PostgreSQL 视图是一个伪表,这意味着它不是一个真实的表。
  • 视图可以从一个或多个表中创建。
  • 从中创建视图的表称为基表。
  • 要创建视图,我们使用 CREATE OR REPLACE VIEW 语句。
  • 要更改视图的定义,我们使用 CREATE OR REPLACE VIEW 语句。
  • 要删除视图,我们使用 DROP VIEW 语句。

下载本教程中使用的数据库