ビュー
実表から動的に生成される導出表の一種で、定義されたビューに対する操作には一定の制限はあるものの、あたかも実表が存在するかのようにアクセスすることが可能
複数の実表上のデータをまとめて扱いやすくしたり、実表上のデータの一部を隠蔽して保護したりするために利用される
ビューとテーブルの違いとは
- => 実際のテーブルを保存しているか否か
ビューからデータを取り出そうとするときに、ビューは内部的に SELECT 文を実行して一時的に仮想のテーブルを作る
メリット
- データは保存せず、データを取り出す SELECT 文を保存するため、記憶装置の容量を節約できること
- 頻繁に使う SELECT 文を毎回書かなくても、ビューとして保存しておくことで使いまわしがきく
構文
作成
CREATE VIEW ビュー名(<ビューの列名1>, <ビューの列名2>, ....) AS <SELECT 文>
- SELECT 文の列とビューの列は並び順で一致
削除
DROP VIEW ビュー名(<ビューの列名1>, <ビューの列名2>, ....)
ビューに対する検索
- 最初にビューに定義された SELECT 文が実行され
- その結果に対して、ビューを FROM 句に指定した SELECT 文が実行される
制限事項
- ビュー定義で ORDER BY 句は使えない
- テーブルと同様、ビューについても「行には順序がない」と定められている
- 使える DBMS もあるが一般的ではない
- ビューに対する更新
- 標準 SQL では、「ビュー定義の SELECT 文において、いくつかの条件を満たしている場合、ビューに対する更新が可能」
- 条件
- SELECT 句に DISTINCT が含まれていない
- FROM 句に含まれるテーブルが 1 つだけである
- GROUP BY 句を使用していない
- HAVING 句を使用していない
- ビュー定義で ORDER BY 句は使えない