Oracleデータベースのビュー

ビュー とは、ひとつ以上の表またはビューを選択/射影/結合した仮想表である。ビューにデータそのものが格納されているわけではない。ビューの元となる表のことを 実表 という。

ビューの制約

テーブルと同様に、ビューに行を挿入したり、更新したり、削除できる。ビューに対して行われた更新は実表にも反映される。

ただし、テーブル結合、集合演算子、GROUP BY句、グループ関数、DISTINCT句を含んだビューは、挿入、更新、削除ができない。

また、更新可能なビューであっても、列データを直接参照ではなく、編集した場合は、更新できない項目となる。

テーブルと異なり、ビューには独自の主キーやインデックスを作成することができない。

ビューと表の違い
操作 ビュー
SELECT
INSERT 可(制限あり)
UPDATE 可(制限あり)
DELETE 可(制限あり)
主キーの作成 不可
インデックスの作成 不可

ビューに関するSQL

ビューを操作するSQL文の一覧を次に示す。

ALTER VIEW
ビューを変更する。
CREATE VIEW
ビューを作成する。
DELETE
行を削除する。実際に行が削除されるのは実表であり、その結果がビューに反映される。
DROP VIEW
ビューを削除する。
INSERT
行を挿入する。実際に行が挿入されるのは実表であり、その結果がビューに反映される。
SELECT
ビューに対して問い合わせる。
UPDATE
行を更新する。実際に行が更新されるのは実表であり、その結果がビューに反映される。

システム権限

ビューを操作するために必要なシステム権限の一覧を次に示す。

CREATE VIEW
自分のスキーマにビューを作成したり削除できる。
CREATE ANY VIEW
任意のスキーマにビューを作成できる。
DROP ANY VIEW
任意のスキーマにあるビューを削除できる。

オブジェクト権限

ビューを操作するために必要なオブジェクト権限の一覧を次に示す。

SELECT
ビューに対して問い合わせできる。

データ・ディクショナリ・ビュー

ビューに関するデータ・ディクショナリ・ビューの一覧を次に示す。

ALL_VIEWS
現在のユーザがアクセスできるビュー
DBA_VIEWS
データベース内すべてのビュー
USER_VIEWS
現在のユーザが所有するビュー

ビューに関するSQL*Plusコマンド

ビューに関するSQL*Plusコマンドの一覧を示す。

ビューに関するSQL*Plusコマンド
コマンド 説明
COLUMN 列の表示属性を設定する。
DESCRIBE ビューの定義を表示する。

関連記事