PostgreSQL View(檢視)

PostgreSQL View(檢視)

View(檢視)是一張假表,只不過是通過相關的名稱儲存在資料庫中的一個 PostgreSQL 語句。

View(檢視)實際上是一個以預定義的 PostgreSQL 查詢形式存在的表的組合。

View(檢視)可以包含一個表的所有行或從一個或多個表選定行。

View(檢視)可以從一個或多個表建立,這取決於要建立檢視的 PostgreSQL 查詢。

View(檢視)是一種虛擬表,允許使用者實現以下幾點:

  • 使用者或使用者組認為更自然或直觀查詢結構資料的方式。
  • 限制資料訪問,使用者只能看到有限的資料,而不是完整的表。
  • 彙總各種表中的資料,用於生成報告。

PostgreSQL 檢視是隻讀的,因此可能無法在檢視上執行 DELETE、INSERT 或 UPDATE 語句。但是可以在檢視上建立一個觸發器,當嘗試 DELETE、INSERT 或 UPDATE 檢視時觸發,需要做的動作在觸發器內容中定義。

CREATE VIEW(建立檢視)

在 PostgreSQL 用 CREATE VIEW 語句建立檢視,檢視建立可以從一張表,多張表或者其他檢視。

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 檔案 ),資料內容如下:

itread01db# 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 表中選取幾列:

itread01db=# CREATE VIEW COMPANY_VIEW AS
SELECT ID, NAME, AGE
FROM  COMPANY;

現在,可以查詢 COMPANY_VIEW,與查詢實際表的方式類似。下面是例項:

itread01db# 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 的基本語法如下:

itread01db=# DROP VIEW view_name;

下面的命令將刪除我們在前面建立的 COMPANY_VIEW 檢視:

itread01db=# DROP VIEW COMPANY_VIEW;