SQLite 視圖
sqlite 視圖
視圖(view)只不過是通過相關的名稱存儲在數據庫中的一個 sqlite 語句。視圖(view)實際上是一個以預定義的 sqlite 查詢形式存在的表的組合。
視圖(view)可以包含一個表的所有行或從一個或多個表選定行。視圖(view)可以從一個或多個表創建,這取決于要創建視圖的 sqlite 查詢。、
視圖(view)是一種虛表,允許用戶實現以下幾點:
- 用戶或用戶組查找結構數據的方式更自然或直觀。
- 限制數據訪問,用戶只能看到有限的數據,而不是完整的表。
- 匯總各種表中的數據,用于生成報告。
sqlite 視圖是只讀的,因此可能無法在視圖上執行 delete、insert 或 update 語句。但是可以在視圖上創建一個觸發器,當嘗試 delete、insert 或 update 視圖時觸發,需要做的動作在觸發器內容中定義。
1. 創建視圖
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
2. 刪除視圖
要刪除視圖,只需使用帶有 view_name 的 drop view 語句。drop view 的基本語法如下:
sqlite> drop view view_name;
下面的命令將刪除我們在前面創建的 company_view 視圖:
sqlite> drop view company_view;