ビュー【DB】
select文に付けた、あだ名だよ
元々あるテーブルを使って作った仮想的なテーブル……とか説明される場合もあるよ
データベースの話で出てくるよ
簡単に書くよ
ビュー【DB】(英:view)とは
元々あるテーブル
(データベースにおける実際にデータが入っている箱)から任意のデータを取り出したり組み合わせたりして作った仮想的なテーブル
とか説明される場合もありますが、身も蓋もないことを書くと
select文
(データベースさんに対する「これ、探してこい」な命令文)に付けた、あだ名
です。
詳しく書くよ
順番に見ていきましょう。
まずは予備知識として
・データベース
・テーブル
・SQL
・SQL文(クエリ)
・select文
について結構ガッツリ説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
データベースは「データを入れておく箱」です。
ただし「データベース」という用語は、実際には もう少し複雑な概念です。
データを入れておく箱そのものは「テーブル」と言います。
とりあえず
データベースの話において、実際にデータを入れておく箱がテーブル
と覚えてください。
SQLは「データベースと やり取りするときに使う言葉」です。
データベースにデータを入れるときは、データベースさんに「これを入れておいて」と命令します。
データベースからデータを取り出すときは、データベースさんに「こんなデータを取り出しておくれ」と命令します。
SQLは、そんな命令をするときに使う言葉です。
SQL文は「データベースに対する、SQLを使った命令文」です。
「クエリ」とも呼ばれます。
「SQL」と「SQL文」は違います。
あまり神経質になる必要はありませんが、区別できるように しておいてください。
SQLは「言語」です。
SQL文は「命令(文)」です。
例えば、そうですね。
ピヨ子さんがピヨ太君に日本語で「パン買ってこい!」と命令したとしましょう。
ピヨ子さんが人間、ピヨ太君がデータベースだとすれば「日本語」が「SQL」です。
「パン買ってこい!な命令」が「SQL文」になります。
select文はデータベースさんに対する「これ、探してこい」な命令文です。
データベースの中にあるデータを取り出すときに使います。
select文の基本的な書式は以下の通りです。
SELECT
【取り出す項目】
FROM
【対象のテーブル】
WHERE
【取り出す条件】
;
例えば
SELECT
column1
FROM
tbl1
WHERE
ID = 1
;
というselect文が あったとしましょう。
これは
「tbl1」という名前のテーブルから「項目『ID』の値が1」な条件に合うデータを選んで、選び出されたデータの項目「column1」の値を取り出してよ
な命令です。
以上を踏まえて
select文に付けた、あだ名
が「ビュー(view)」です。
今の段階ではピンと来ないかもしれませんが、気にせず読み進めてください。
ビューを作りたいときは
CREATE VIEW 【ビューの名前】 AS 【select文】;
を実行すれば、【ビューの名前】という名前のビューができます。
反対にビューを削除したいときは
DROP VIEW 【ビューの名前】;
を実行すれば、なくなります。
それを踏まえて、実際の例を見てみましょう。
例えば、そうですね。
項目として「ID」と「名前」と「性別」を持つテーブル「会員テーブル」が ありました。
この状態で
CREATE VIEW 会員ビュー AS SELECT ID, 名前 FROM 会員テーブル;
を実行すると「会員ビュー」という名前のビューが作られます。
この状態で
SELECT * FROM 会員ビュー;
とかやって会員ビューの中身を見ると、会員テーブルと同じデータが表示されます。
ただし、項目は「ID」と「名前」しかありません。
SELECT ID, 名前 FROM 会員テーブル;
をやった結果と同じ結果が表示されます。
さらに
SELECT
名前
FROM
会員ビュー
WHERE
ID = 1
;
を実行しました。
このselect文は
「会員ビュー」から「項目『ID』の値が1」な条件に合うデータを選んで、選び出されたデータの項目「名前」の値を取り出してよ
な命令です。
実は、この命令は
SELECT
名前
FROM
(
SELECT
ID, 名前
FROM
会員テーブル
)
WHERE
ID = 1
;
と指定したのと実質的に同じです。
「『SELECT ID, 名前 FROM 会員テーブル』の結果」から「項目『ID』の値が1」な条件に合うデータを選んで、選び出されたデータの項目「名前」の値を取り出してよ
な命令と同じなのです。
さぁ、ここで先ほどの説明を思い出してください。
ビューとは
select文に付けた、あだ名
だと説明しました。
例として挙げた内容では「SELECT ID, 名前 FROM 会員テーブル」と「会員ビュー」が実質的に同じです。
「SELECT ID, 名前 FROM 会員テーブル」というselect文に対して「会員ビュー」というあだ名をつけて使っていると解釈できますよね。
英語の勉強になってしまいますが「as」の意味は(他にも、いろいろありますが)「同様に」とか「~として」とかです。
ビューを作るときの命令文
CREATE VIEW 【ビューの名前】 AS 【select文】;
を無理やり日本語にすると
作るぜ! ビュー 【ビューの名前】 として 【select文】;
です。
何となく良い感じに並べ替えて適当に意訳すると
【select文】として(使える)ビュー【ビューの名前】を作るぜ!
に なります。
【select文】として使える【ビューの名前】を作ると言っていますね。
先ほどの例に当てはめてみましょう。
CREATE VIEW 会員ビュー AS SELECT ID, 名前 FROM 会員テーブル;
は
「SELECT ID, 名前 FROM 会員テーブル」として(使える)ビュー「会員ビュー」を作るぜ!
な命令文です。
おぉ、それっぽいですね。
ということで、ビューはselect文の仮の姿です。
ビューの裏側にはselect文が隠れています。
一言でまとめるよ
まぁ「ビュー(view)」って単語が出てきたら「select文
(データベースさんに対する「これ、探してこい」な命令文)に付けた、あだ名なんだな~」と お考えください。
おまけ
■訳してみるよ
「view(ビュー)」の意味は
・見る
・眺める
・見ること
・視界
・視野
・眺め
・景色
とかです。






