【SQL基礎】Viewとは
Viewとは
これまでの記事で様々なSQLを説明してきましたが、中にはサブクエリのような複雑なSQL文もありました。頻繁に使用するテーブルからデータを抽出する時に毎回複雑なSQL文を作成して実行するのは手間が掛かりますし、入力ミスする可能性もあります。
例えば以下のテーブルで相関サブクエリを使って各都道府県の最小年齢以外のデータを抽出するケースを考えてみましょう。
SELECT * FROM teachers;
各都道府県の最小年齢以外のデータを抽出する相関サブクエリ
SELECT id,name,age FROM teachers as T1 WHERE age > (SELECT MIN(age) FROM teachers as T2 WHERE T1.addr = T2.addr);
SQLで頻繁に利用するテーブルからデータを抽出する場合、このような複雑なSQL文を毎回作成して実行するのは手間が掛かるのと同時に入力ミスにも繋がる可能性があります。
こうした複雑なSQL文を毎回実行するのを避けるために使用されるのがViewになります。
SQLで利用されるViewは実テーブルから作成される「仮想的なテーブル」だと考えてください。管理者が必要なデータだけを抜粋したり、各テーブルからデータを参照しやすいように加工したViewを作成することができます。Viewはあくまでも仮想テーブルなので、その中にデータは存在しませんが、管理者からはテーブル操作をするのと同じような感覚で参照することができます。Viewにはデータが存在しないと説明しましたが、Viewの実態はSELECT文です。Viewにアクセスする際、定義したSELECT文が実行され、抽出したデータを参照することで仮想テーブルのように扱うことができるのです。
Viewを利用するメリット
①データ抽出の簡略化
毎回入力するのが大変なSQL文をViewとして定義しておくことで、ユーザーや管理者はViewにアクセスするだけで作成済みのSQL文を実行するだけで済みます。そのため開発効率を大幅に削減することが可能です。
②セキュリティ性の向上
実テーブルの中には一般ユーザーに見せたくないデータもある場合、Viewを利用することで一般ユーザーのデータへのアクセスを制限することができます。また、誤入力などで不用意にデータを更新・削除してしまうことを防ぐことができるため、セキュリティ性の向上に繋がります。
今回の学習ポイント
・複雑なSQL文をViewとして定義することで、毎回入力する必要がなくなり開発効率が向上する
・Viewを利用すれば一般ユーザーに見せたくないデータへのアクセスを制限することができる
練習問題
問題として使用するデータは「SQL練習問題」のものを使用しています。
以下からダウンロード可能です。
以下のようにしてworldcup2014データベースを作成し、インポートしてください。
※worldcup2014.zip解凍してできるworldcup2014.sqlファイルをCドライブ直下に配置した場合。
[sql] CREATE DATABASE worldcup2014;USE worldcup2014;
Source C/worldcup2014.sql
[/sql]
Viewは仮想テーブルなので、その中にデータは存在しません。それではViewの実態は何でしょう?下記から選択してください。
・SELECT文
・UPDATE文
・INSERT文
・DELETE文
Viewについて説明しました。
次回はViewの作成方法についてです。