他のバージョンの文書11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

CREATE VIEW

Name

CREATE VIEW  --  新しいビューの定義

Synopsis

CREATE VIEW view [ ( column name list ) ] AS SELECT query

入力

view

作成されるビューの名前です。

column name list

省略可能な、ビューの列として使用される名前のリストです。与えられた場合、この名前は SQL 問い合わせから生成される列名を上書きします。

query

ビューの列と行を提供する SQL 問合せです。

有効な引数に関する情報は SELECT 文を参照して下さい。

出力

CREATE

ビューが正常に作成された場合に返されるメッセージです。

ERROR: Relation 'view' already exists

指定したビューが既にデータベースに存在する場合に出力されるエラーです。

NOTICE: Attribute 'column' has an unknown type

型を指定をしないと、型の不明な列を持ったビューが作成されます。例えば下記のコマンドには警告が出されます。

CREATE VIEW vista AS SELECT 'Hello World'

一方、このコマンドには警告が出ません。

CREATE VIEW vista AS SELECT text 'Hello World'

説明

CREATE VIEW はテーブルのビューを定義します。ビューは物理的な実態として存在するものではありません。ビューに対する抽出操作をサポートするような、問い合わせを書き換え、抽出するルールが自動的に生成されます。

注釈

現在のところビューは読み取り専用です。システムは、ビューに対する挿入、更新、削除を許可しません。ビューに対する挿入などを他のテーブルに対する適切な処理に書き換えるルールを作成することで、更新可能なビューと同じ効果を得ることができます。より詳細な情報については CREATE RULE を参照して下さい。

ビューを削除するには 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 が指定されたものと仮定されます。