CREATE VIEW
Name
CREATE VIEW — 构造一个虚拟表(视图)
CREATE VIEW view AS SELECT query
输入
-
view
-
所要创建的视图名称.
-
query
-
一个将为视图提供行和列的 SQL 查询.
请参阅 SELECT 语句获取有效参数的更多信息.
输出
-
CREATE
-
如果视图创建成功,返回此信息.
-
ERROR: Relation 'view' already exists
-
如果在数据库中已经存在所声明的视图.
-
NOTICE create: attribute named "column" has an unknown type
-
如果不声明,所创建的视图将有一个未知类型的字段. 例如,下面命令返回一个警告:
CREATE VIEW vista AS SELECT 'Hello World'
然而下面命令将不出现警告: CREATE VIEW vista AS SELECT text 'Hello World'
描述
CREATE VIEW 将定义一个表的视图. 这个视图不是物理上实际存在(于磁盘)的.具体的说,自动生成 一个改写索引规则的查询用以支持在视图上的检索.
注意
目前,视图是只读的.
使用 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.
|----------------------------------------------------------------------------------------|
版权声明 版权所有 @zhyiwww
引用请注明来源 http://www.blogjava.net/zhyiwww
|----------------------------------------------------------------------------------------|
posted on 2006-06-02 18:37
zhyiwww 阅读(492)
评论(0) 编辑 收藏 所属分类:
database