第3章 ビューの作成

3-1 ビューの作成
■ビューを作成しアプリケーションを簡略化し、データセキュリティ的に堅牢化する

■単一ビュー
  ・1つの表から構成される
  ・関数を含まない
  ・グループを含まない
  ・ビューからの挿入、更新、削除が可能

■複合ビュー
  ・複数の表から構成される
  ・関数を含まない
  ・グループを含む
  ・条件付で、ビューからの挿入、更新、削除が可能

■ビュー作成の基本構文
CREATE [OR REPLACE] [FORCE | NOFORCE] 
VIEW ビュー名[(別名)] AS 
SELECT文 
[WITH READ ONLY]

[WITH CHECK OPTION]
  ・作成時に各列に別名をつけることができます
    →セキュリティの観点を考慮すると、別名を付けることが好ましい。
  ・WITH CHECK OPTION:VIEWによって選択される行に対してのみ、VIEWを通して挿入や更新が可能であることを指定するオプション
  ・WITH READ ONLY:ビューに対して選択のみ可能にし、削除および挿入、更新が出来なくするオプション

■ビューの削除の基本構文
DROP VIEW ビュー名
  ・ビューを削除しても元になる表に影響はありません
   →但し、削除したビューを元に作成したビューは無効化されます

■ビューの確認の基本構文
SELECT * FROM USER_VIEWS


3-2 ビューを通した更新
■ビューでの、データの挿入、更新、削除にはいくつかの制限が適用される
  (複合ビューの更新はOracleR7.3以上で適用されます)

■ビューの新規挿入、更新、削除時の留意点
  ・表の列を選択して作成されたビューに新規挿入する場合、選択されていない列にはNULL(もしくはDEFAULT値)がセットされる
  ・結合処理(R7.2以下)、DISTINCT演算子、GROUP BY句またはグループ関数使用したビューはデータの挿入、更新、削除ができない。

■操作条件一覧
  条件
ビューに対する削除 グループ関数 GROUP BY句 DISTINCTキーワード ROWNUM列
ビューに対する更新 グループ関数 GROUP BY句 DISTINCTキーワード ROWNUM列 式によって定義された列
ビューに対する挿入 グループ関数 GROUP BY句 DISTINCTキーワード ROWNUM列 式によって定義された列 NOT NULL制約月の列をビューに定義していない