CREATE VIEW の使い方
問い合わせに名前をつけて表のように使う
書き方
CREATE [OR REPLACE] VIEW 名前 AS SELECT …;
ビューはデータを持たず、使うたびに中の SELECT が実行されます。
よく使うオプション
| オプション | 意味 |
|---|---|
CREATE VIEW 名前 AS SELECT … | 問い合わせに名前をつけて、表のように使う |
OR REPLACE | 同じ名前のビューがあれば作り直す |
DROP VIEW 名前 | ビューを消す(元の表はそのまま) |
例
CREATE VIEW paid_orders AS
SELECT o.id, c.name, o.total FROM orders o JOIN customers c ON c.id = o.customer_id WHERE o.status = 'paid';CREATE VIEW支払い済みの注文に客の名前をつけた問い合わせに、paid_orders という名前をつけます。
SELECT name, SUM(total) FROM paid_orders GROUP BY name;
ビューは表と同じように使えます。長い JOIN を毎回書かずに済みます。
CREATE OR REPLACE VIEW staff_public AS SELECT id, name, dept_id FROM employees;
給与やメールを除いた社員の一覧を作ります。見せたい列だけを渡すのにも使えます。
よくある間違い・注意
- ビューはデータを持たず、使うたびに中の SELECT が動きます。重い問い合わせは、ビューにしても速くなりません。
- OR REPLACE で作り直すとき、PostgreSQL では列を減らしたり型を変えたりできません。そのときは DROP VIEW してから作ります。
実際に打って練習する
SQL コースの Lv48「問い合わせに名前を VIEW」で覚えます。ブラウザの中のシミュレーターで、本物と同じように打って確かめられます。
Lv1〜3 は、登録不要・無料で遊べます(それより先はブロンズ以上のプランで遊べます)。