ORACLE/VIEW編

オラクルちょこっとリファレンス

HOME > VIEW編

VIEW(ビュー)

ビューとはある表の特定のカラムや指定した条件に合致するレコードなどを取り出した仮想の表です。また、複数の表を結合したビューを作成することもできます。

ビューを作成することによりユーザに必要最小限のカラムやレコードのみにアクセスさせる事ができたり、結合条件を指定しなくても既に結合された表にアクセスできるなどのメリットがあります。

ビューの作成

ビューの作成には、CREATE VIEW句を使用します。

CREATE VIEW構文
CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW <ビュー名>
  AS <SELECT文> [WITH READ ONLY] [WITH CHECK OPTION];
パラメータ 説明
OR REPLACE 同名のビューが既に存在した時でも、構わず上書きする場合に指定する
FORCE|NOFORCE FORCE:エラーがあっても強制的にVIEWを作成する
NOFORCE:エラーがあった場合はVIEWを作成しない
WITH READ ONLY 読み取り専用のVIEWを作成する
WITH CHECK OPTION VIEWにより問い合わされた行に対してのみ、ビューを通して挿入や更新を可能とする場合に指定する
CREATE VIEW例文
CREATE VIEW test_view AS SELECT B.PREF_NAME, A.JYUSHO, A.TEL, FROM ADDRESS A, PREF_MST B WHERE A.PREF_CD = B.PREF_CD WITH READ ONLY;

CREATE VIEWの実行には以下の権限が必要です。

  • 自スキーマに作成する場合:「CREATE VIEW」システム権限
  • 他スキーマに作成する場合:「CREATE ANY VIEW」システム権限

ビューの更新

ビューを更新するには、CREATE OR REPLACE VIEW句を使用します。
詳細は上記の「ビューの作成」をご覧ください。

ビューのソースを表示

ビューのソースを表示するには USER_VIEWSデータディクショナリを検索します。
(DBA_VIEWS、ALL_VIEWSでもOKです。)

ビューソース表示構文
SELECT TEXT FROM USER_VIEWS
WHERE VIEW_NAME = 'ビュー名';

ビュー名は必ず、大文字で指定してください。

VIEWのソースを表示する例文
--ビュー(ビュー名:test_view)のソースを表示する。 SELECT TEXT FROM USER_VIEWS WHERE VIEW_NAME = 'TEST_VIEW';

ビューの削除

ビューの削除には、DROP VIEW句を使用します。

DROP VIEW構文
DROP VIEW <ビュー名>;

DROP VIEW例文
--ビュー(ビュー名:test_view)を削除する。 DROP VIEW test_view;

ビューや列にコメントを付ける

ビューや列に対してコメントを付けることができます。コメントを付けておくと、見返した時にとても分かりやすくなるので付けておくことをお勧めします。

ビューや列にコメントを付ける構文
--ビューにコメントを付ける
COMMENT ON TABLE <ビュー名> IS '<コメント>';

--ビューの列にコメントを付ける
COMMENT ON COLUMN <ビュー名>.<列名> IS '<コメント>';

コメントを付ける例文
--(例)v_testビューに、「テストビュー」とコメントを付ける。 COMMENT ON TABLE v_test IS 'テストビュー'; --(例)v_testビューのname列に、「名前」とコメントを付ける。 COMMENT ON TABLE v_test.name IS '名前';

ビューの情報を表示する

ビューの情報を表示するには ALL_VIEWSデータディクショナリビューを検索します。

ビューの情報を表示する
SELECT * FROM ALL_VIEWS;

データディクショナリビューには、DBA_やUSER_で始まるものもあります。
 違いは参照できる範囲が異なります。

【ALL_VIEWSの主要カラム】
カラム内容
OWNERビューの所有者
VIEW_NAMEビュー名
TEXT_LENGTHビューのソースのサイズ
TEXTビューのソース
READ_ONLYビューが読み取り専用かどうか
(Y:読取専用 N:読取専用でない)

ここで紹介しているカラムは、主要なカラムのみです。

ToTop