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;