SQLite 檢視

SQLite 檢視(View)

檢視(View)只不過是通過相關的名稱儲存在資料庫中的一個 SQLite 語句。檢視(View)實際上是一個以預定義的 SQLite 查詢形式存在的表的組合。

檢視(View)可以包含一個表的所有行或從一個或多個表選定行。檢視(View)可以從一個或多個表建立,這取決於要建立檢視的 SQLite 查詢。、

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

  • 使用者或使用者組查詢結構資料的方式更自然或直觀。

  • 限制資料訪問,使用者只能看到有限的資料,而不是完整的表。

  • 彙總各種表中的資料,用於生成報告。

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

刪除檢視

要刪除檢視,只需使用帶有 view_name 的 DROP VIEW 語句。DROP VIEW 的基本語法如下:

sqlite> DROP VIEW view_name;

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

sqlite> DROP VIEW COMPANY_VIEW;