定義一個新的視圖。

語法

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;