Developer

【SQL基礎】Viewとは
2021.08.31
Lv1

【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ドライブ直下に配置した場合。

worldcup2014.sql

[sql] CREATE DATABASE worldcup2014;
USE worldcup2014;
Source C/worldcup2014.sql
[/sql]

Viewは仮想テーブルなので、その中にデータは存在しません。それではViewの実態は何でしょう?下記から選択してください。

・SELECT文

・UPDATE文

・INSERT文

・DELETE文

答え

・SELECT文

Viewの実態はSELECT文です。Viewにアクセスする際、定義したSELECT文が実行され、必要な部分だけデータを取り出すことができます。

 

Viewについて説明しました。

次回はViewの作成方法についてです。
 

 

連載目次リンク

SQL基礎 連載目次

関連する連載リンク

SQL練習問題 一覧まとめ