SYNOPSIS

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

DESCRIPTION 描述

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

CREATE OR REPLACE VIEW 类似,不过是如果一个同名的视图已经存在,那么就替换它。 你只能用一个生成相同字段的新查询替换一个视图(也就是说,同样字段名和数据类型)。

如果给出了一个模式名(比如,CREATE VIEW myschema.myview ...),那么该视图是在指定的模式中创建的。 否则它是在当前模式中创建的。 该视图名字必需和同一模式中任何其它视图,表,序列或者索引的名字不同。

PARAMETERS 参数

name
 所要创建的视图名称(可以有模式修饰)。
column_name
 一个可选的名字列表,用于当作视图的字段名。如果没有给出, 字段名取自查询。
query
 一个将为视图提供行和列的查询(也就是一条 SELECT 语句)。

请参阅 SELECT [select(7)] 获取有效查询的更多信息。

NOTES 注意

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

使用 DROP VIEW 语句删除视图

请注意视图字段的名字和类型不一定是你们期望的那样。比如,

CREATE VIEW vista AS SELECT 'Hello World';

在两个方面很糟糕:字段名缺省是 ?column?,并且字段的数据类型缺省是 unknown。 如果你想视图的结果是一个字串文本,那么用类似下面这样的东西

CREATE VIEW vista AS SELECT text 'Hello World' AS hello;

对视图引用的表的访问的权限由视图的所有者决定。 不过,在视图里调用的函数当作他们直接从使用视图的查询里调用看待。 因此,视图的用户必须有使用视图调用的所有函数的权限。

EXAMPLES 例子

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

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

COMPATIBILITY 兼容性

SQL 标准为 CREATE VIEW 声明了一些附加的功能:

CREATE VIEW name [ ( column [, ...] ) ]
AS query
[ WITH [ CASCADE | LOCAL ] CHECK OPTION ]

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

CHECK OPTION
 这个选项用于可更新视图。 所有对视图的INSERT和UPDATE都要经过视图定义条件的校验。 (也就是说,新数据应该可以通过视图看到。)如果没有通过校验,更新将被拒绝。

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

CREATE OR REPLACE VIEW 是 PostgreSQL 的扩展。

最新文章

  1. python --> 递归 以及装饰器
  2. OA(权限管理初步模块)
  3. Linux安全基础:网络配置命令
  4. 后台系统组件:一丶bootstrap table
  5. 【BZOJ】2084: [Poi2010]Antisymmetry
  6. switch多分支语句简析
  7. 主程序底部TabBar功能跟登录页面布局
  8. zookeeper 配置详解
  9. Machine Schedule(poj 1274)
  10. 亿级Web系统搭建——单机到分布式集群[转]
  11. Oracle —— 函数 length() 和 lengthb() 的区别
  12. BZOJ 3563 DZY Loves Chinese
  13. 类型转换之 PropertyEditorSupport类
  14. ${param.name}和${name}的区别
  15. 联合查询到gridview
  16. (数字IC)低功耗设计入门(八)——物理级低功耗设计&to be continued?
  17. Centos7的目录结构
  18. linux随机生成密码
  19. 我发起并创立了一个 .Net 平台上的 Web 业务系统 基础库 开源项目 WebEasy
  20. 异步陷阱之IO篇

热门文章

  1. linux系统编程之进程(七):system()函数使用【转】
  2. 用过滤器Filter判断用户是否登陆
  3. Masonry整体动画更新约束
  4. Ural2040:Palindromes and Super Abilities(离线&manecher算法)
  5. ab压力测试-突破最大线程数
  6. Java:目录
  7. UVa 1471 Defense Lines (二分+set优化)
  8. Access operations
  9. 组合游戏 - SG函数和SG定理
  10. Tarjan UVALive 6511 Term Project