ビューの仕組みを図解で説明 〜データを持たない仮想の表〜
データベースの「ビュー」が何のためにあるのか説明できますか?
見た目は普通の表と同じなので、表とどう違うのか分かりにくいと思います。
ビューは、よく使う検索を名前を付けて保存しておく仕組みです。
ビューの仕組みと使いどころについて、図を使って説明していきます。

ビューとは?
ビューは、SELECT文の結果を、表のように扱えるようにしたもの です。
ビュー自体はデータを持っていません。
そのため、仮想の表 とも呼ばれます。
ビューを使うたびに、もとになっている表に対して、保存しておいたSELECT文が実行されます。
もとの表のデータが変われば、ビューで見える結果も変わります。
ビューの作り方
ビューは、CREATE VIEWという命令で作ります。
例えば、社員の表と部署の表を結合して、全員の名前と部署名を見せるビューを作ります。
部署に所属していない社員も一覧に残すため、LEFT JOINを使います。
CREATE VIEW 社員一覧 AS
SELECT 社員.名前, 部署.部署名
FROM 社員
LEFT JOIN 部署 ON 社員.部署番号 = 部署.部署番号;
作ったビューは、普通の表と同じようにSELECT文で使えます。
SELECT * FROM 社員一覧;
ビューの使いどころ
ビューは、主に次の2つの目的で使います。
複雑な検索を簡単にする
表の結合や条件の指定が多い検索は、SQLが長くなります。
同じ検索を何度も書くと、書き間違いも起きやすくなります。

ビューにしておけば、利用する人は「SELECT * FROM 社員一覧」と書くだけで済みます。
検索の中身を直したい時も、ビューを1か所直すだけで済みます。
見せるデータを絞る
社員の表に給与のような、全員には見せたくない列が入っていることがあります。

給与の列を含まないビューを作り、利用する人にはビューだけを使う権限を与えます。
こうすると、利用する人はもとの表の給与の列を見られません。
行を絞ることもできます。例えば、「営業部の社員だけ」を見せるビューも作れます。
ビューの注意点
ビューは便利ですが、注意点もあります。
- ビューを使うたびにSELECT文が実行されるので、もとの検索が重いとビューも重くなる
- ビューを通したデータの更新は、条件を満たす場合に限られる。結合や集計を使ったビューは、更新できないことが多い
ビューは、主にデータを見るために使うものと考えておくとよいです。
マテリアライズドビュー
ビューと似た名前のものに、マテリアライズドビュー があります。

マテリアライズドビューは、重い集計の結果を保存しておき、すぐに読みたい時に使います。
ただし、使っているデータベースによっては、この機能がないこともあります。
まとめ
今回はビューの仕組みについて説明しました。
ビューは、SELECT文の結果を表のように扱えるようにしたもので、データそのものは持たない仮想の表です。
複雑な検索を簡単にしたり、見せるデータを絞ったりするために使います。
「ビューは検索に名前を付けて保存したもの」と覚えておきましょう。
データベースの基本については、データベースの種類を図解で解説の記事で説明しています。
ビューの中で使っている表の結合については、SQLのJOINの仕組みを図解で説明の記事で説明しています。


