CREATE VIEW

Name

CREATE VIEW  --  仮想テーブルを作成します。

Synopsis

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 'Hello World'::text
	

説明

CREATE VIEW はテーブルのビューを定義します。 このビューは実態として存在するものではありません。 特に、抽出ルールを書き換える問合せはビュー上の抽出操作を サポートするため自動的に生成されます。

注意事項

ビューを削除するには DROP VIEW 文を使います。

バグ情報

現時点で、ビューは読み取り専用です。

使用法

全ての Comedy films を含むビューを作成します:

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
   

互換性

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 が想定されます。