ビュー
ビュー
- データアクセスの制限
- データの独立性の確保
- 複雑な問い合わせの簡略化
- 同じデータに基づく異なるビューの提供
ビューの作成
CREATE [ OR REPLACE | FORCE | NOFORCE ] VIEW ビュー名 [[ 列名, 列名, ...]] AS 副問い合わせ [ WITH CHECK OPTION [ CONSTRAINT 制約名 ]] [ WITH READ ONLY [ CONSTRAINT 制約名 ]]
- OR REPLACE:ビューが存在する場合、置き換える
- FORCE:ビューの基となる表の有無にかかわらず、ビューを作成する
- NO FORCE:ビューの基となる表が存在する場合、ビューを作成する。(デフォルト)
- WITH CHECK OPTION:WHERE句の条件を満たす行だけ挿入、更新ができることを評価する。
CONSTRARINT句を使用して、制約を指定することができる - WITH READ ONLY:DML操作できないようにする。CONSTRAINT句を使用して制約を指定することができる
ビューの種類
単一ビュー
- 基となる問い合わせは1つの表
- 問い合わせに、関数、計算式を含まない
- グループ関数,グループ式を含まない
- ビューを通したDML操作が可能
複合ビュー
- 基となる問い合わせは1つ以上の表
- 問い合わせに、関数、計算式を含む
- グループ関数、グループ処理を含む
- ビューを通したDML操作が制限される
ビュー操作の制限
DELETEの制限
ビューの基となる問い合わせに以下が含まれる場合、削除操作できない
- グループ関数
- GROUP BY 句
- DISTINCT キーワード
- ROWNUM 擬似列
UPDATEの制限
ビューの基となる問い合わせに以下が含まれる場合、更新操作できない
- グループ関数
- GROUP BY 句
- DISTINCT キーワード
- ROWNUM 擬似列
- 式によって定義された列(定義されてない列は更新可能)
INSERTの制限
ビューの基となる問い合わせに以下が含まれる場合、更新操作できない
- グループ関数
- GROUP BY 句
- DISTINCT キーワード
- ROWNUM 擬似列
- 式によって定義された列(定義されてない列は更新可能)
- NOT NULLが含まれていない
ビューの削除
DROP VIEW ビュー名
このページのURL: