【SQLの基礎知識⑰】 ビューの取り扱い(VEIW)

SQLの基礎知識
この記事は約4分で読めます。

データベースに対する要求にはさまざまなものがあり、必要となる表もさまざまです。しかし、必要だからといって同じような表をたくさん増やしていくことは、効率やパフォーマンスを考えるとあまり得策とはいえません。そこで、表を増やすことなく、多様な要求に応えるのが「ビュー」(View)です。ビューは仮想表とも呼ばれます。

スポンサーリンク

ビューについて

ここまで解説した表は、データベース上に物理的に存在していました。実際のデータを、ビューと区別するために「実表」と呼ぶことがあります。そして、ビューはデータベース内には物理的に存在せず、ビューの定義が存在するだけです。この定義にしたがって、ユーザーに対して表からビューを作って、データを見せるようにしています。

ただし、ユーザーから見るとビューと実表の区別はつきません。そのため、実表であってもビューであっても同様に問合せ、更新、挿入といった処理を行うことができます。また、ビューを使う目的としては、データベース上の効率といったものだけでなく、次のような目的にも使うことができます。

  • セキュリティ
  • データの見せ方の変換
  • プログラムの効率を上げる

セキュリティの管理のためにビューを用いるのは、ビューのもとになる表の中に重要な情報や変更されては困る情報などがあるときです。

このような場合には、ユーザーに対してビューのもとになる表へのアクセス権限を与えません。その代わりにビューを作成し、ビューへはアクセスが可能になるように設定します。このようにすると、ビューのもとになる表の必要な部分のみ閲覧、更新ができるように設定することができまます。

またデータの見せ方を変えるためにビューを使う場合には、もとのデータに対して何らかの処理をした結果をユーザーに見せたいときなどがあります。例えば、商品の単価が入っている表をもとに、消費税を考慮した価格を提供したい場合などに使います。

さらに、プログラムの効率をあげるために使うこともあります。非常に大きな表を扱うような場合、プログラムをすべてのデータを扱えるように考えなければならないので、かなり面倒になります。そんなときに、プログラムに必要な部分だけビューにすれば、プログラマが意識する列が少なくなり、プログラムの効率があがります。

このようにビューは、さまざまな目的で使うことができます。

ビューを作成する

ビューの作成には、CREATE VIEW文を用います。CREATE VIEW文の書式は次のようになります。

書式
CREATE VIEW <ビュー名> (<列名1>[,列名2...]) AS
SELECT <列名A> [,列名2...] FROM <表名A>
WHERE <検索条件>;
この書式からもわかるように、SELECT文で出力された結果がビューとして作成されます。ビューにもとの表と異なる列名を指定する場合には、ビュー名の後に列名を指定しておきます。この列名の指定の部分を省力すると、SELECT文で指定したもとの表の列名と同じ列名がビューにも作成されます。
また、ビューのもとになるのは、実表だけでなく、ビューであっても構いません。要するにビューからさらにビューを作成することもできるのです。
それでは、次のような「商品マスタ」「企業マスタ」から、実際にビューを」作成してみましょう。
表:商品マスタ
商品コード商品名商品単価仕入先コード
112間違った地図78018
113曲がった定規50018
115固い枕450022
118座れない椅子880036

表:企業マスタ

企業コード企業名
18奇怪雑貨
22不健康生活
36無意味社
この2つの表から、「商品名」列と「販売価格」列、「メーカー」列を持った「CVIEW」表というビューを作るCREATE VIEW文は次のようになります。
SQL文
CREATE VIEW CVIEW (商品名,販売価格,メーカー) AS
SELECT 商品マスタ.商品名, 商品マスタ.商品価格,
企業マスタ.企業名
WHRE 商品マスタ.仕入先コード=企業マスタ.企業コード;
実行結果  1行が作成されました。
作成されたビューを確認するために、問合せを行います。

SQL文
SELECT * FROM CVIEW;

実行結果

商品名販売価格メーカー
間違った地図780奇怪雑貨
曲がった定規500奇怪雑貨
固い枕4500不健康生活
座れない椅子8800無意味社

ビューを削除する

作成したビューを削除するには、DROP VIEW文を用います。

書式 DROP VIEW <ビュー名>;
ビューを削除しても、もとになっている表には何の影響も与えません。しかし、ビューを削除したときに、そのビューをもとに作られているビューは無効になってしまいます。
SQL文  DROP VIEW CVIEW;
実行結果 ビューが削除されました。

関連リンク

次の章に進む
【SQLの基礎知識⑱】 インデックスの取り扱い(INDEX)
膨大なデータの中から条件に合致したデータをすばやく取り出すために「インデックス」が準備されています。この章では、インデックスの作成と削除について習得できます。いちれべ.comは、オラクル、MS-SQL、MS-Access で使用可能か一目でわかるサイトです。
目次
【SQLの基礎知識】基本ルールや基礎の基礎をマスターしよう
こちらの記事を読み進めることで、SQLの基礎が充分に身に付きます。これからSQLを身に着けたい初心者・入門者の方に最適です。データベース製品ごとに表現方法が異なることがありますので、ある程度SQLのスキルがある方も利用できるサイトです。
タイトルとURLをコピーしました