您的位置:寻梦网首页编程乐园数据库PostgreSQL 7.2 Documentation

CREATE VIEW

Name

CREATE VIEW  --  定义一个视图

Synopsis

CREATE VIEW 

view

 AS SELECT 

query


  

输入

view

所要创建的视图名称.

query

一个将为视图提供行和列的 SQL 查询.

请参阅 SELECT 语句获取有效参数的更多信息.

输出

CREATE

如果视图创建成功,返回此信息.

ERROR: Relation ' view ' already exists

如果在数据库中已经存在所声明的视图.

NOTICE: Attribute ' column ' has an unknown type

如果不声明,所创建的视图将有一个未知类型的字段. 例如,下面命令返回一个警告:

CREATE VIEW vista AS SELECT 'Hello World'
    

然而下面命令将不出现警告:

CREATE VIEW vista AS SELECT text 'Hello World'
    

描述

CREATE VIEW 将定义一个表的视图. 这个视图不是物理上实际存在(于磁盘)的.具体的说,自动生成 一个改写索引规则的查询用以支持在视图上的检索.

注意

目前,视图是只读的∶系统将不允许在视图上插入,更新,或者删除数据. 你可以通过在视图上创建把插入等动作重写为向其它表做合适操作的规则来 实现可更新视图的效果.更多信息详见 CREATE RULE

使用 DROP VIEW 语句删除视图.

用法

创建一个由所有 Comedy (喜剧)电影组成的视图:

CREATE VIEW kinds AS
    SELECT *
    FROM films
    WHERE kind = 'Comedy';

SELECT * FROM kinds;

 code  |           title           | did | date_prod  |  kind  | len
-------+---------------------------+-----+------------+--------+-------
 UA502 | Bananas                   | 105 | 1971-07-13 | Comedy | 01:22
 C_701 | There's a Girl in my Soup | 107 | 1970-06-11 | Comedy | 01:36
(2 rows)
   

兼容性

SQL92

SQL92 为 CREATE VIEW 声明了一些附加的功能:

CREATE VIEW 

view

 [ 

column

 [, ...] ]
    AS SELECT 

expression

 [ AS 

colname

 ] [, ...]
    FROM 

table

 [ WHERE 

condition

 ]
    [ WITH [ CASCADE | LOCAL ] CHECK OPTION ]
   

完整的SQL92命令可选的子句是:

CHECK OPTION

这个选项用于可更新视图. 所有对视图的 INSERT 和 UPDATE 都要经过视图定义条件的校验. 如果 没有通过校验,更新将被拒绝.

LOCAL

对这个视图进行完整性检查.

CASCADE

对此视图和任何相关视图进行完整性检查. 在既没有声明 CASCADE 也没有声明 LOCAL 时,假设为 CASCADE.