PostgreSQL View(视图)

Posted 瀚高PG实验室

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PostgreSQL View(视图)相关的知识,希望对你有一定的参考价值。

PostgreSQL View(视图)

View(视图)是一张假表,只不过是通过相关的名称存储在数据库中的一个 PostgreSQL 语句。
View(视图)实际上是一个以预定义的 PostgreSQL 查询形式存在的表的组合。
View(视图)可以包含一个表的所有行或从一个或多个表选定行。
View(视图)可以从一个或多个表创建,这取决于要创建视图的 PostgreSQL 查询。
View(视图)是一种虚拟表,允许用户实现以下几点:

  1. 用户或用户组认为更自然或直观查找结构数据的方式。
  2. 限制数据访问,用户只能看到有限的数据,而不是完整的表。
  3. 汇总各种表中的数据,用于生成报告。

PostgreSQL 视图是只读的,因此可能无法在视图上执行 DELETE、INSERT 或 UPDATE 语句。但是可以在视图上创建一个触发器,当尝试 DELETE、INSERT 或 UPDATE 视图时触发,需要做的动作在触发器内容中定义。

CREATE VIEW(创建视图)

在 PostgreSQL 用 CREATE VIEW 语句创建视图,视图创建可以从一张表,多张表或者其他视图。
CREATE VIEW 基础语法如下:

CREATE [TEMP | TEMPORARY] VIEW view_name AS
SELECT column1, column2.....
FROM table_name
WHERE [condition];

您可以在 SELECT 语句中包含多个表,这与在正常的 SQL SELECT 查询中的方式非常相似。如果使用了可选的 TEMP 或 TEMPORARY 关键字,则将在临时数据库中创建视图。
实例
创建 COMPANY 表,数据内容如下:

highgo=# select  * from  company ; 
 id | name | age |                       address                        | salary 
----+------+-----+------------------------------------------------------+--------
  1 | 张三 |  32 | 济南                                                 |  20000
  2 | 李四 |  25 | 青岛                                                 |  15000
  3 | 王五 |  23 | 北京                                                 |  20000
  4 | 赵六 |  25 | 上海                                                 |  65000
  5 | 小明 |  27 | 广州                                                 |  85000
  6 | 小红 |  22 | 深圳                                                 |  45000
  7 | 小强 |  24 | 成都                                                 |  10000
(7 行记录)

现在,下面是一个从 COMPANY 表创建视图的实例。视图只从 COMPANY 表中选取几列:

highgo=# create  view  company_view as  
select  id, name, age  
from  company ;
CREATE VIEW

现在,可以查询 COMPANY_VIEW,与查询实际表的方式类似。下面是实例:

highgo# SELECT * FROM COMPANY_VIEW;

得到结果如下:

 id | name | age 
----+------+-----
  1 | 张三 |  32
  2 | 李四 |  25
  3 | 王五 |  23
  4 | 赵六 |  25
  5 | 小明 |  27
  6 | 小红 |  22
  7 | 小强 |  24
(7 行记录)

DROP VIEW (删除视图)

要删除视图,只需使用带有 view_name 的 DROP VIEW 语句。DROP VIEW 的基本语法如下:

highgo=# DROP VIEW view_name;

下面的命令将删除我们在前面创建的 COMPANY_VIEW 视图:

highgo=# DROP VIEW view_name;

以上是关于PostgreSQL View(视图)的主要内容,如果未能解决你的问题,请参考以下文章

PostgreSQL View(视图)

Drupal 6 视图 2:PHP 片段

Postgresql - MATERIALIZED VIEW

片段内的视图坐标始终为空

Recyclerview 滚动在嵌套滚动视图中的片段中不起作用

共享转换片段到片段不起作用