Oracleのビュー(VIEW)とは



Oracleのビュー(VIEW)

Oracleのビューはテーブルを整形できる便利なオブジェクトです。そしてテーブルと同じように使用することができます。

ただし、テーブルのようにデータを保持しているわけではありません。ビューはあくまで疑似テーブルです。

ビューの使い方

例えば、テーブルA・テーブルB・テーブルCを結合して使用する場合があるとします。それも使用頻度は高くて、よく使う場合。この場合、使用する際に毎回結合したSQLを書くのは面倒です。

なので、テーブルA・テーブルB・テーブルCを結合したビューDを作ります。

ビューはテーブルと同じようにSELECTができるので、そのままビューDをSELECTするだけで使えます。長い結合SQLを書く必要がありません。

このように面倒な作業を省くことができるのがビューの特徴の1つです。

テーブルの例

  • EMPテーブル:{EMP_NO、EMP_NAME、DEP_NO、POS_NO}
  • DEPテーブル:{DEP_NO、DEP_NAME}
  • POSテーブル:{POS_NO、POS_NAME}

EMPテーブルは従業員のテーブル。DEPが部署のテーブルです。POSは役職のテーブルです。

従業員、部署名、役職名をSELECTする場合は、通常この3テーブルを結合します。使用するたびにこの3テーブルを結合すればいいのですが、ちょっと面倒です。この例では単純なテーブル構成でしたが、実際にはもっと複雑ですね。

そんなときにビューの出番です。

ビューの例

EDPビュー:{EMP_NO、EMP_NAME、DEP_NO、DEP_NAME、POS_NO、POS_NAME}

EDPビューを新規に作ります。このEDPビューは3つのテーブルの列をすべて含めています。

ビューとテーブルのSQL比較

前述の3テーブルを結合したSQLはこちらです。このような単純なテーブル構成でもそこそこ長くなってしまいます。実際のテーブルだとしたら・・・列も多くテーブルももっと多いケースがほとんど。かなり長くなるのがわかります。

それではビューを作ってみます。

ビューのSQLの説明はこちらを参照してください。

Oracleのビュー(View)を作成する【SQL】

それではビューをSELECTします。

3つのテーブルを結合したSQLと比較すると、ビューにした場合はコード量がかなり減りました。このように簡単に扱えて便利なのがビューです。

Oracleのビュー(View)のまとめ

  • Oracleのビューはテーブルのように扱える
  • ビューはデータを保持していない
  • 使用頻度が高い&複雑で長いSQLであればビューを検討してみる

以上、Oracleのビュー(VIEW)のまとめでした。