PostgreSQL View(視圖)


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

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

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

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

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

  • 用戶或用戶組認為更自然或直觀查找結構數據的方式。
  • 限制數據訪問,用戶只能看到有限的數據,而不是完整的表。
  • 匯總各種表中的數據,用於生成報告。

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

 

創建視圖:

create  [temp|temporary]   view  viewname as  select column 1,column2 from table where [condition];

您可以在 SELECT 語句中包含多個表,這與在正常的 SQL SELECT 查詢中的方式非常相似。如果使用了可選的 TEMP 或 TEMPORARY 關鍵字,則將在臨時數據庫中創建視圖。

 

創建 COMPANY 表(下載 COMPANY SQL 文件 ),數據內容如下:

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

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

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

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

runoobdb=# DROP VIEW view_name;

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

runoobdb=# DROP VIEW COMPANY_VIEW;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM