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

説明

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
(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 が指定されたものと仮定されます。