Latest web development tutorials

SQLite 視圖

視圖(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;