【PostgreSQL】VIEWを活用しよう!作成方法と実用例を解説

スポンサーリンク

データベースを扱う際、複雑な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 を取り入れて、データ管理を効率化してみてください!

コメント