教程 > postgresql 教程 > 阅读:57

postgresql view(视图)——迹忆客-ag捕鱼王app官网

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 关键字,则将在临时数据库中创建视图。

示例

创建 ,数据内容如下:

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)

drop view (删除视图)

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

jiyik_db=# drop view view_name;

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

jiyik_db=# drop view company_view;

查看笔记

扫码一下
查看教程更方便
网站地图