位置:首頁 > 數據庫 > SQLite基礎教程 > SQLite VIEW/視圖

SQLite VIEW/視圖

視圖是冇有超過一個SQLite語句存儲在數據庫相關的名稱。視圖實際上是一個預定義的SQLite查詢的形式的組合物中的一個表。

從一個或多個表,視圖可以包含一個表的所有行或選定行。可以從一個或多個表,這取決於書麵SQLite的查詢創建一個視圖創建一個視圖。

視圖是一種虛表,讓用戶做到以下幾點:

  • 用戶或類彆的用戶發現結構數據的方式更自然或直觀。

  • 限製訪問,用戶隻能看到有限的數據,而不是完整的表等數據。

  • 總結各種表中的數據可用於生成報告。

SQLite的視圖是隻讀的,因此可能無法執行DELETE,INSERT或UPDATE語句在視圖上。但是可以創建一個觸發器,視圖上的DELETE,INSERT或UPDATE一個視圖,需要做什麼在體內觸發嘗試觸發。

創建視圖:

SQLite的視圖是使用CREATE VIEW語句創建的。可以從一個單一的表,多個表,或其他視圖創建的SQLite視圖。

CREATE VIEW語法的基本情況如下:

CREATE [TEMP | TEMPORARY] VIEW view_name AS
SELECT column1, column2.....
FROM table_name
WHERE [condition];

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

例如:

考慮COMPANY表有以下記錄:

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32          California  20000.0
2           Allen       25          Texas       15000.0
3           Teddy       23          Norway      20000.0
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0
6           Kim         22          South-Hall  45000.0
7           James       24          Houston     10000.0

現在,下麵是一個例子,從COMPANY表創建一個視圖。視圖將被用於從COMPANY表隻有幾列:

sqlite> CREATE VIEW COMPANY_VIEW AS
SELECT ID, NAME, AGE
FROM  COMPANY;

現在,可以在類似的方式為查詢實際的表查詢COMPANY_VIEW。下麵的例子:

sqlite> 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

刪除視圖:

要刪除視圖,隻需使用DROP VIEW語句及view_name。 DROP VIEW的基本語法如下: 

sqlite> DROP VIEW view_name;

下麵的命令將刪除COMPANY_VIEW的視圖,我們在最後一節創建:

sqlite> DROP VIEW COMPANY_VIEW;