PostgreSQL View(视图)
Posted 瀚高PG实验室
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PostgreSQL View(视图)相关的知识,希望对你有一定的参考价值。
PostgreSQL View(视图)
View(视图)是一张假表,只不过是通过相关的名称存储在数据库中的一个 PostgreSQL 语句。
View(视图)实际上是一个以预定义的 PostgreSQL 查询形式存在的表的组合。
View(视图)可以包含一个表的所有行或从一个或多个表选定行。
View(视图)可以从一个或多个表创建,这取决于要创建视图的 PostgreSQL 查询。
View(视图)是一种虚拟表,允许用户实现以下几点:
- 用户或用户组认为更自然或直观查找结构数据的方式。
- 限制数据访问,用户只能看到有限的数据,而不是完整的表。
- 汇总各种表中的数据,用于生成报告。
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 - MATERIALIZED VIEW