Provided by: manpages-zh_1.5-1_all bug

NAME

       CREATE VIEW - 定義一茧纗

SYNOPSIS

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

DESCRIPTIONyz
       CREATE             VIEW             定義一茯d詢的視圖。             這-
       茧纗洃ㄛO物理上實際存在(於磁碟)的。具體的說,自動生成一-
       荍嚗g索引規則(一 ON SELECT 規則)的查詢用以支持在視圖上的檢索。

       CREATE         OR        REPLACE        VIEW        類似,不過是如果一-
       茼P名的視圖已經存在,那麼就替換它。                         你只能用一-
       茈穻足萓P字段的新查詢替換一茧纗洁]也就是說,同樣字段名和數據類型)。

        如果給出了一蚍狾’W(比如,CREATE         VIEW         myschema.myview
       ...),那麼該視圖是在指定的模式中創建的。  否則它是在當前模式中創建的。
       該視圖名字必需和同一模式中任何其它視圖,表,序列或者索引的名字不同。

PARAMETERS數
       name    所n創建的視圖名稱(可以有模式袡╮^。

       column_name
               一茈i選的名字列表,用於當作視圖的字段名。如果沒有給出,
              字段名取自查詢。

       query   一荓N為視圖提供行和列的查詢(也就是一條 SELECT 語句)。

               請參閱 SELECT [select(7)] 獲取有效查詢的更多信息。

NOTES`N
        目前,視圖是只讀的:系統將不允許在視圖上插入,更新,或者刪除數據。
       你可以通過在視圖上創建把插入等動作-
       姨g為向其它表做合適操作的規則來實現可更新視圖的效果。      更多信息詳見
       CREATE RULE [create_rule(7)].

        使用 DROP VIEW 語句刪除視圖

        請注意視圖字段的名字和類型不一定是你抴螫瑼漕獐芊C比如,

       CREATE VIEW vista AS SELECT 'Hello World';

        在兩茪鞊很糟糕:字段名預設是        ?column?,並且字段的數據類型預設是
       unknown。 如果你想視圖的結果是一茼r串文本,那麼用類似下掖o樣的東西

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

        對視圖引用的表的訪問的權由視圖的所有者決定。
       不過,在視圖裏調用的函數當作他怐蔣絞q使用視圖的查詢裏調用看待。
       因此,視圖的使用者必須有使用視圖調用的所有函數的權。

EXAMPLESl
        創建一茈悕狾陶葝@電影組成的視圖:

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

COMPATIBILITYe性
        SQL 標準為 CREATE VIEW 聲明了一些附加的功能:

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

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

       CHECK OPTION
               這蚇龠等峏韞i更新視圖。           所有對視圖的INSERT和UPDATE都-
              n經過視圖定義條件的校驗。
              (也就是說,新數據應該可以通過視圖看到。)如果沒有通過校驗,更新將被拒絕。

       LOCAL   對這茧纗炩i行完整性檢查。

       CASCADE
               對此視圖和任何相關視圖進行完整性檢查。   在既沒有聲明   CASCADE
              也沒有聲明 LOCAL 時,假設為 CASCADE。

       CREATE OR REPLACE VIEW 是 PostgreSQL 的擴展。

者
       Postgresql  <laser@pgsqldb.org>