视图

收藏865

阅读10263

更新时间2025-08-21

视图是伪表。 也就是说,它们不是真正的表格; 尽管如此,对于 SELECT 来说,它仍然显示为普通表。 视图可以表示真实表的子集,从普通表中选择某些列或某些行。 视图甚至可以表示连接的表。 因为视图被分配了单独的权限,所以您可以使用它们来限制表访问,以便用户只能看到表的特定行或列。

一个视图可以包含一个表的所有行或一个或多个表中的选定行。 可以从一个或多个表创建视图,这取决于编写的 PostgreSQL 查询来创建视图。

视图是一种虚拟表,允许用户执行以下操作 −

  • 以用户或用户类别认为自然或直观的方式构建数据。

  • 限制对数据的访问,使用户只能看到有限的数据而不是完整的表格。

  • 汇总各种表格中的数据,可用于生成报告。

由于视图不是普通表,因此您可能无法对视图执行 DELETE、INSERT 或 UPDATE 语句。 但是,您可以创建一个规则来纠正在视图上使用 DELETE、INSERT 或 UPDATE 的问题。


创建视图

PostgreSQL 视图是使用 CREATE VIEW 语句创建的。 可以从单个表、多个表或另一个视图创建 PostgreSQL 视图。

基本的 CREATE VIEW 语法如下 −

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

您可以在 SELECT 语句中包含多个表,其方式与在普通 PostgreSQL SELECT 查询中使用它们的方式非常相似。 如果存在可选的 TEMP 或 TEMPORARY 关键字,则视图将在临时空间中创建。 在当前会话结束时会自动删除临时视图。

示例

考虑一下, 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

现在,以下是从 COMPANY 表创建视图的示例。 此视图将用于只有 COMPANY 表中的几列 −

testdb=# CREATE VIEW COMPANY_VIEW AS
SELECT ID, NAME, AGE
FROM  COMPANY;

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

testdb=# 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 语法如下 −

testdb=# DROP VIEW view_name;

以下命令将删除我们在上一节中创建的 COMPANY_VIEW 视图 −

testdb=# DROP VIEW COMPANY_VIEW;

相关

视频

RELATED VIDEOS

更多

免费

phpStudy极速入门视频教程

免费

Midjourney基础课程
初级 Midjourney基础课程

11149次学习

收藏

免费

极客学院Git使用视频教程

免费

尚观shell视频教程
高级 尚观shell视频教程

15709次学习

收藏

免费

尚观Linux入门视频教程
初级 尚观Linux入门视频教程

42887次学习

收藏

免费

尚观Linux初级视频教程
初级 尚观Linux初级视频教程

40264次学习

收藏

免费

尚观Linux中级视频教程
中级 尚观Linux中级视频教程

48298次学习

收藏

免费

尚观Linux高级视频教程
高级 尚观Linux高级视频教程

41982次学习

收藏

科技资讯

更多

精选课程

更多
前端入门_HTML5
前端入门_HTML5

共29课时

61.7万人学习

CSS视频教程-玉女心经版
CSS视频教程-玉女心经版

共25课时

39.3万人学习

JavaScript极速入门_玉女心经系列
JavaScript极速入门_玉女心经系列

共43课时

70.9万人学习

独孤九贱(1)_HTML5视频教程
独孤九贱(1)_HTML5视频教程

共25课时

61.6万人学习

独孤九贱(2)_CSS视频教程
独孤九贱(2)_CSS视频教程

共22课时

23万人学习

独孤九贱(3)_JavaScript视频教程
独孤九贱(3)_JavaScript视频教程

共28课时

33.9万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时

125万人学习

关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号