SQLite 視圖(View)
SQLite 視圖(View)
資料來源: http://www.runoob.com/sqlite/sqlite-view.html
視圖(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;