定义一个新的视图。

语法

CREATE [ OR REPLACE ] VIEW name [ ( column_name [, ...] ) ]
  AS query

参数

参数名称 描述
name 所创建视图的名称(可以采用模式限定的方式引用)。
column name 所创建视图列的名称(可选)。如果没有使用这个参数,那么就是用查询输出中的列名。
query 为视图提供列和行的查询语句。

描述

CREATE VIEW命令定义一个新的查询视图。视图不是实际物化的,而是每一次查询视图的时候,都是实际运行视图定义中查询语句。

CREATE OR REPLACE VIEW命令的功能类似,但是如果相同名称的视图已经存在,那么将用新创建的视图替代已存在视图。

如果指定了模式名称(例如,CREATE VIEW myschema.myview ...),那么视图就在指定模式下创建。否则就在当前模式下创建。所创建视图的名称必须和同一模式下其它视图,表,序列或者索引有所区别。

说明
  • 视图是只读的,系统不允许在视图上执行插入、更新或者删除操作。通过在视图上创建规则,将视图上插入,更新等操作重写为到在其他表上的相应操作,可以得到可更新视图的效果。关于CREATE RULE 命令,参见Postgres Plus文档集。
  • 是否允许访问视图中引用的表由视图所有者拥有权限来决定的。如果在使用视图的查询中直接调用函数,那么在视图中调用的函数也做相同的处理。因此,使用视图的用户必须有权限调用视图用到的所有函数。

示例

创建一个视图,包含所有在部门编号为30的雇员:

CREATE VIEW dept_30 AS SELECT * FROM emp WHERE deptno = 30;