扫码一下
查看教程更方便
view(视图)是一张假表,只不过是通过相关的名称存储在数据库中的一个 postgresql 语句。
view(视图)实际上是一个以预定义的 postgresql 查询形式存在的表的组合。
view(视图)可以包含一个表的所有行或从一个或多个表选定行。
view(视图)可以从一个或多个表创建,这取决于要创建视图的 postgresql 查询。
view(视图)是一种虚拟表,允许用户实现以下几点:
postgresql 视图是只读的,因此可能无法在视图上执行 delete、insert 或 update 语句。但是可以在视图上创建一个触发器,当尝试 delete、insert 或 update 视图时触发,需要做的动作在触发器内容中定义。
在 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 关键字,则将在临时数据库中创建视图。
创建 ,数据内容如下:
jiyik_db# select * from company;
id | name | age | address | salary
---- ------- ----- ----------- --------
1 | paul | 32 | california| 20000
2 | allen | 25 | texas | 15000
3 | teddy | 23 | norway | 20000
4 | mark | 25 | rich-mond | 65000
5 | david | 27 | texas | 85000
6 | kim | 22 | south-hall| 45000
7 | james | 24 | houston | 10000
(7 rows)
现在,下面是一个从 company 表创建视图的实例。视图只从 company 表中选取几列:
jiyik_db=# create view company_view as
select id, name, age
from company;
现在,可以查询 company_view,与查询实际表的方式类似。下面是实例:
jiyik_db# select * from company_view;
结果如下:
id | name | age
---- ------- -----
1 | paul | 32
2 | allen | 25
3 | teddy | 23
4 | mark | 25
5 | david | 27
6 | kim | 22
7 | james | 24
(7 rows)
要删除视图,只需使用带有 view_name 的 drop view 语句。drop view 的基本语法如下:
jiyik_db=# drop view view_name;
下面的命令将删除我们在前面创建的 company_view 视图:
jiyik_db=# drop view company_view;