PostgreSQL View(ビュー)
View(ビュー)は仮のテーブルであり、関連する名前でデータベースに保存された PostgreSQL ステートメントにすぎません。
View(ビュー)は実際には、事前定義された PostgreSQL クエリの形式で存在するテーブルの組み合わせです。
View(ビュー)は、1つのテーブルのすべての行、または1つ以上のテーブルから選択した行を含むことができます。
View(ビュー)は、作成するビューの PostgreSQL クエリに応じて、1つまたは複数のテーブルから作成できます。
View(ビュー)は仮想テーブルであり、ユーザーが次の点を実現できます:
- ユーザーまたはユーザーグループにとって、構造化データを検索するための、より自然で直感的な方法。
- データアクセスを制限し、ユーザーは完全なテーブルではなく限られたデータのみを表示できます。
- レポート生成のために、さまざまなテーブルのデータを集約します。
PostgreSQL のビューは読み取り専用であるため、ビューに対して DELETE、INSERT、または UPDATE ステートメントを実行できない場合があります。ただし、ビュー上にトリガーを作成することができ、DELETE、INSERT、または UPDATE を試みたときにトリガーが発動し、実行する必要のあるアクションはトリガー内で定義されます。
CREATE VIEW(ビューの作成)
PostgreSQL では、CREATE VIEW ステートメントを使用してビューを作成します。ビューは、1つのテーブル、複数のテーブル、または他のビューから作成できます。
CREATE VIEW の基本構文は次のとおりです:
CREATE [TEMP | TEMPORARY] VIEW view_name AS SELECT column1, column2..... FROM table_name WHERE [condition];
SELECT ステートメントには複数のテーブルを含めることができます。これは通常の SQL SELECT クエリと非常によく似ています。オプションの TEMP または TEMPORARY キーワードを使用した場合は、一時データベースにビューが作成されます。
例
COMPANY テーブルを作成します(COMPANY SQL ファイルをダウンロード)。データ内容は次のとおりです:
サンプルdb# select * from COMPANY; id | name | age | address | salary ----+-------+-----+-----------+-------- 1 | Paul | 32 | California| 20000 2 | Allen | 25 | Texas | 15000 3 | Teddy | 23 | Norway | 20000 4 | Mark | 25 | Rich-Mond | 65000 5 | David | 27 | Texas | 85000 6 | Kim | 22 | South-Hall| 45000 7 | James | 24 | Houston | 10000 (7 rows)
次に、COMPANY テーブルからビューを作成する例を示します。このビューは COMPANY テーブルから数列のみを選択します:
サンプルdb=# CREATE VIEW COMPANY_VIEW AS SELECT ID, NAME, AGE FROM COMPANY;
これで、実際のテーブルをクエリするのと同様に COMPANY_VIEW をクエリできます。次に例を示します:
サンプルdb# SELECT * FROM COMPANY_VIEW;
結果は次のとおりです:
id | name | age ----+-------+----- 1 | Paul | 32 2 | Allen | 25 3 | Teddy | 23 4 | Mark | 25 5 | David | 27 6 | Kim | 22 7 | James | 24 (7 rows)
DROP VIEW(ビューの削除)
ビューを削除するには、view_name を指定した DROP VIEW ステートメントを使用するだけです。DROP VIEW の基本構文は次のとおりです:
サンプルdb=# DROP VIEW view_name;
次のコマンドは、先ほど作成した COMPANY_VIEW ビューを削除します:
サンプルdb=# DROP VIEW COMPANY_VIEW;