データベースを扱う際、複雑なSQLを何度も書くのは面倒ですよね。
また、特定のカラムだけを表示したい場合や、アクセス制御をしたい場合もあるでしょう。
そんなときに便利なのが 「VIEW(ビュー)」 です!
VIEW
を使うと、あらかじめ定義したSQLクエリを仮想テーブルとして保存でき、簡単に再利用できます。
これにより、以下のようなメリットがあります。
✅ SQLの再利用: 何度も同じクエリを書く手間を省ける
✅ 可読性の向上: 複雑なSQLをシンプルに整理できる
✅ セキュリティ強化: ユーザーごとに特定のデータだけを表示できる
本記事では、PostgreSQLの VIEW
の作成方法を詳しく解説します!
これを読めば、 VIEW
を活用できるようになるはずです。
それでは、早速 VIEW
について学んでいきましょう!
VIEWとは?
VIEW
(ビュー)は、 「実際のデータを持たない仮想テーブル」 です。
通常のテーブルと同じように SELECT
できますが、データは元のテーブル(基となるテーブル)から参照されています。
VIEW
を使うことで、
✅ 複雑なSQLを簡単に再利用 できる
✅ 必要なデータだけを抽出 できる
✅ セキュリティを強化 し、ユーザーに不要なカラムを隠すことができる
このように、VIEW
はデータベース設計において非常に便利な機能です。
VIEWの作成方法
PostgreSQLで VIEW
を作成するには、CREATE VIEW
文を使用します。基本的な構文は以下の通りです。
CREATE VIEW view_name AS
SELECT column1, column2 FROM table_name WHERE 条件;
例えば、以下のusers
テーブルから ステータスが active
のユーザーだけを表示する VIEW
を作成してみましょう。

CREATE VIEW active_users AS
SELECT id, name, email FROM users WHERE status = 'active';
作成した VIEW
は、通常のテーブルのように SELECT
して使用できます。
SELECT * FROM active_users;
VIEWの更新・削除
ここでは、VIEW
の削除方法、更新方法をそれぞれ紹介していきます。
VIEWの削除(DROP VIEW)
不要になった VIEW
を削除するには、DROP VIEW
を使用します。
構文は以下の通りです。
DROP VIEW view_name;
例えば、先ほど作成した active_users
ビューを削除する場合、次のように実行します。
DROP VIEW active_users;
もし、削除する VIEW
が存在しない場合にエラーを回避したい場合は、IF EXISTS
を付けることができます。
DROP VIEW IF EXISTS active_users;
VIEWの更新(CREATE OR REPLACE VIEW)
VIEW
の定義を変更したい場合、CREATE OR REPLACE VIEW
を使うことで、新しい定義に置き換えることができます。
CREATE OR REPLACE VIEW view_name AS
SELECT 列1, 列2 FROM table_name WHERE 条件;
例えば、active_users
ビューに created_at
カラムを追加したい場合は、以下のように書き換えます。
CREATE OR REPLACE VIEW active_users AS
SELECT id, name, email, created_at FROM users WHERE status = 'active';
このコマンドを実行すると、既存の active_users
ビューが新しい定義に置き換わります。
まとめ
この記事では、PostgreSQLのVIEW
について、基本的な使い方から応用まで解説しました。
VIEW
を活用することで、よりシンプルでメンテナンスしやすいSQL を実現できます。
ぜひ、実際のプロジェクトでも VIEW
を取り入れて、データ管理を効率化してみてください!
コメント