HOME > 受験対策 > サンプル問題/例題解説 > Silverの例題解説「開発/SQL」 > SQLコマンド(ビュー)

Silverの例題解説「開発/SQL - SQLコマンド(ビュー)」

今回は、Silverの「開発/SQL - SQLコマンド(ビュー)」からの出題です。

例題

Q. ビュー(VIEW)に関する説明として適切なものを1つ選びなさい。
  1. A. 検索を高速化するため、ビューにインデックスを作成することができる。
  2. B. ビューから検索する方が、その元となるテーブルから検索するより高速である。
  3. C. CREATE OR REPLACE VIEWコマンドでビューの定義を変更するとき、ビューに列を追加することはできるが、減らすことはできない。
  4. D. ビューを定義するSELECT文のFROM句にはテーブルのみを記述することができ、ビューを含めることはできない。
  5. E. ビューとテーブルをJOINにより表結合することはできるが、ビューとビューを表結合することはできない。

※この例題は実際のOSS-DB技術者認定試験とは異なります。

解答と解説

ビューは CREATE VIEW view_name AS SELECT …という形式で、SELECT文により定義されます。実体としてのデータを保持しないので、余分なスペースを消費することがありませんが、テーブルとほぼ同じように使うことができ、SQL文でテーブル名を記述できる箇所の多くで、ビュー名を記述することができます。
テーブル名の代わりにビュー名を記述できない例としては、CREATE INDEXによるインデックスの作成(対象はテーブルのみです)、UPDATE/DELETE/INSERTによるデータの更新(更新可能なビューもありますが、テーブルの更新に比べるといろいろと制限があります)などがありますが、CREATE VIEWでビューを作成するときに、作成済みの別のビューを参照することもできますし、JOINで表結合するときは、ビューはテーブルと全く区別なく使用できます。
ビューからの検索では、元となるテーブルからのSELECTに内部的に展開した上で実行プランが決められますので、ビューを定義したことで検索が早くなることはありません。
ビューの定義を変更するには、DROP VIEWで削除してからCREATE VIEWで再作成する方法と、CREATE OR REPLACE VIEWで定義を変更する方法があります。前者ではどのような変更をしようとそれ自体は自由ですが、ビューに依存するオブジェクトが存在するときは、DROP VIEWによるビューの削除が制限されます。後者の場合も、ビューに依存するオブジェクトへの影響を防ぐため、ビューへの列の追加は可能ですが、既存の列の削除、順序やデータ型の変更はできないという制限があります。なお、列の名前やデータ型が同じであれば、ビューを定義する式は変更できます。

従って、正解はCです。

  • 今回の解説について、理解できないポイントがあればどんどん質問をお寄せ下さい。
  • 採用になった方にはLPI-Japanオリジナルの記念品を贈呈します。
  • ご質問・ご意見はこちら
  • ※試験問題に関わるお問い合わせにつきましては、LPI-Japan事務局ではお応えできませんのでご了解ください。

ページトップへ