SQLite - 檢視



檢視只不過是儲存在資料庫中並具有關聯名稱的 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];

您可以像在普通的 SQL SELECT 查詢中使用它們一樣,在 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;
廣告