クエリを記述するときはそれを考案するのに多くの時間と労力が必要です。ビューを使えばSQLクエリの定義を再利用可能な’仮想テーブル’に保存できます。
このレッスンの目標: クエリをビューとして保存します。
ビューはテーブルのように扱うことができますが、そのデータはクエリから供給されます。上記に基いて単純なビューを作りましょう:
create view roads_count_v as
select count(people.name), streets.name
from people, streets where people.street_id=streets.id
group by people.street_id, streets.name;
はじめの create view roads_count_v as の部分だけが異なります。そのビューからデータを選択することができます:
select * from roads_count_v;
結果:
count | name
-------+-------------
1 | Main Road
2 | High street
1 | Low Street
(3 rows)
ビューは固定されておらず、’実データ’を持ちません。つまりデータベースの中のデータに影響を与えることなく簡単に変更することができます:
CREATE OR REPLACE VIEW roads_count_v AS
SELECT count(people.name), streets.name
FROM people, streets WHERE people.street_id=streets.id
GROUP BY people.street_id, streets.name
ORDER BY streets.name;
(また、この例はすべてのSQLキーワードには大文字を使用する最良慣行を示しています。)
ORDER BY 句を追加したのでビューの行はきれいに並べ替えられています:
select * from roads_count_v;
count | name
-------+-------------
2 | High street
1 | Low Street
1 | Main Road
(3 rows)
ビューを用いてクエリを保存し、テーブルであるかのようにその結果へアクセスできます。
データを変更する時に変更がデータベースの中の他の場所へ影響を及ぼすのが望ましい場合があります。次のレッスンではこの方法を紹介します。