ビューとは
リレーショナルデータベースではデータを正規化してテーブルに分割する関係上、必要なデータを取り出すときには、テーブルの結合が不可欠になります。
テーブルの結合によりSQL文が複雑化することを避けるために、よく利用するテーブルはあらかじめ結合した状態で擬似的なテーブルとして利用することができます。
この仕組みを仮想表(ビュー)と呼びます。
ビューを使うと、SELECT文の結果をあたかも1つのテーブルであるかのように扱うことができます。
ただし、ビューの中に実際にデータが入っている訳ではありません。
ビューに対して検索が行われると、自動的にビューの元になっているテーブルから実際のデータの抽出を行います。
【ビューとは】
・テーブルのように見えるが、データそのものは存在しない
・データを集めるための情報(どのようなレコードを集めるか)が記録されているだけ
ビューは上のような特徴があるため、ユーザが必要としている条件ごとにビューを作っておくことで、データが必要になった場合、何度も条件を指定して、テーブルから抽出する必要がなくなり、都度SQL文を入力しデータを抽出することなく、条件ごとに登録しておいたビューを実行するだけですみます。
例えば、すべての情報が登録されている販売リストから、「2016年度分のデータを抽出したい」「横浜店だけのデータを抽出したい」といった場合、副問合せなどで抽出したレコードをもとに新規にテーブルを作ってもよいのですが、データは日々更新される可能性があるので、いったん作ってしまったテーブルはすぐに古い情報になってしまいます。
常に最新版にするために、毎日テーブルを作っていると、テーブルの数が増え、管理も煩雑になります。
ビューは抽出条件の情報のみを持っているため、テーブルとして残ることがなく、メモリや記憶媒体の容量を圧迫することはありません。
ビューを実行した時のみ、仮想で結果を見せてくれるだけで、実際に登録されているわけではないからです。
またビューを作成することで、セキュリティ管理をすることもできます。
例えば、管理者にはデータベースに関するあらゆる操作ができるビューを用意し、一般の人には触っても問題ない部分だけを集めたビューを用意しておくことで、データを安全に管理することができます。
さらに、テーブル間でのリレーションシップが複雑であるデータベースは、データベース初心者にはテーブル同士を結合したビューを提供することで、データベースの難易度を気にすることなく、簡単に操作をすることができます。
ビューの作成
ビューを作成するには、CREATE VIEWを使用します。
CREATE VIEWでは、ビューの定義となるSELECT文を設定します。
定義に使用されたSELECT文の結果を、あたかも1つのテーブルのように扱うことができます。
【書式】CREATE VIEWによるビューの作成
CREATE VIEW ビュー名 AS ( 《 SELECT 文》 );
ビューからテーブルのデータを更新する
ビューは元になるテーブルの一部を表示しています。
これはビューがテーブルの窓口であるということです。
ビュー側から列の値を更新すると、元になっているテーブルの列の値も更新されます。
ビューからのINSERT(データの挿入)を制限する
ビューを通して、レコードをINSERT(挿入)するとどうなるでしょうか。
1つのテーブルから作成されたビューに対してUPDATEやINSERTを行うことは可能です。
しかし、複数のテーブルから作成されたビューは、各テーブルからのデータの寄せ集めなので、テーブルの一部だけにデータを挿入することはできません。
ビューの上書き・変更・削除
ビューの上書き
すでに同名のビューがある時に上書きしてビューを作成します。
すでにあるビューを削除して、新しく作るのと結果は同じです。
ビューを上書きして作成するには、CREATE OR REPLACE VIEWを使用します。
【書式】ビューの上書き作成
CREATE OR REPLACE ビュー名 AS (《 SELECT文》);
ビューの変更
ビューの定義を変更するには、ALTER VIEWを使用します。
【書式】ビューの定義の変更
ALTER VIEW ビュー名 AS (《 SELECT文》);
ビューの 削除
ビューを削除するにはDROP VIEWを使用します。
【書式】ビューの定義の変更
DROP VIEW ( IF EXISTS ) ビュー名;
ビューを削除する際に、対象のビューが存在ない場合は、エラーになります。
DROP VIEWの後ろにIF EXISTSを付けておくと、対象となるビューが存在しなくてもエラーにはならず、削除が実行されないだけという、結果になります。
参考図書
LINE公式アカウント
仕事が辛くてたまらない人生が、仕事が楽しくてたまらない人生に変わります。
【登録いただいた人全員に、無料キャリア相談プレゼント中!】