本ページでは、ビューの作成方法について説明します。

構文

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

パラメーター

パラメーター 説明 
name 作成するビューの名前。 名前はスキーマで修飾できます。
column_name オプションで指定できるビューの列名のリスト。 指定しない場合、列名はクエリから推定されます。
query ビューの列と行を提供する SELECT 文。

説明

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;