0371.Blog

SQLのお勉強 14.view

2020-09-22

こんにちは、0371です。

今回は、SQLのお勉強をしたいと思います。
基本情報技術者試験で出題される範囲を中心に進めます。

お勉強

※ PostgreSQLはインストール済みかつ、パスも通しているという前提で進めていきます。

分からないという方は、以下の記事から始めてください。

dockerを使って、再構築が容易なSQLの練習場を作成する
"https://0371.blog/docker-sql"

前回の記事はこちら

SQLのお勉強 13.order by
"https://0371.blog/sql-13"

create view

viewを使用することで、selectの取得結果を保存することができます。
頻繁に使用するselect文をviewにすることで、SQLの入力が楽になります。

テーブルは実際のデータを保存していますが、ビューはselect文そのものを仮想的に保存しています。
なので、テーブルとビューでの操作の違いはほとんどありません。
更新の操作のみ、注意するポイントがあります。

ビューを使用するメリットは、

  1. データを保存しないので、データ量の節約が可能。
  2. select文の使い回しが簡単。 の2つです。

ビューの作成には、create viewを使用します。

create view ビュー名 (ビューの列名1, ビューの列名2) as select文;

それでは、Shohinテーブルを元にShohinSumビューを作成してみます。

create view ShohinSum (shohin_bunrui, cnt_shohin) as select shohin_bunrui, count(*) from Shohin group by shohin_bunrui;

cnt_shohinのように、select文と集約関数で条件を指定して取得した列を新しい名前でビューの列名に保存することができます。

別名をつけるときのasは省略可能ですが、viewasは省略不可ですので注意してください。

ShohinSumビューを作成したので、実際に使用してみましょう。
これまでのテーブルと同じく、fromに使用することができます。

select shohin_bunrui, cnt_shohin from ShohinSum;
 shohin_bunrui | cnt_shohin 
---------------+------------
 キッチン用品  |          4
 衣服          |          2
 事務用品      |          2
(3 rows)

このように複雑なselect文をビューとして保存することで、簡単に集計結果を得ることができるようになります。
このビューは、テーブルのデータが更新されると自動的にビューも更新されるようになっています。

基本的には、ビューではorder byは使用できません。
行には順序がないという決まりだからです。

drop view

ビューの削除には、以下の構文を使います。

drop view ビュー名

先ほど作成した、ShohinSumビューを削除します。

drop view ShohinSum;

今日はここまで。

参考書籍

SQL 第2版 ゼロからはじめるデータベース操作
"https://amzn.to/2QYMBJD"

今日の一言

viewが分かったのでSQLはマスターしたも同然!!!!

次回の記事はこちら

SQLのお勉強 15.サブクエリ
"https://0371.blog/sql-15"