視圖(View)
視圖是一個預定義的SQLite查詢的形式存在的表的組合。
可以包含一個表的所有行或從一個或多個表選定行。可以從一個或多個表,這取決於創建視圖的語句。
視圖(View)是一種虛表,是隻讀的,因此在視圖上無法執行DELETE,INSERT或UPDATE語句。但是可以創建一個觸發器,視圖上發生DELETE,INSERT或UPDATE操作時,需要做的操作在觸發器內實現。
-- 語句
CREATE [TEMP | TEMPORARY] VIEW view_name AS
SELECT column1, column2..
FROM table_name
WHERE [condition];
-- SELECT 語句可以操作多個表。
-- 關鍵字TEMP 或 TEMPORARY 用於創建臨時視圖。
-- 實例
CREATE VIEW link_men_view AS
SELECT ID, NAME
FROM link_name;
視圖使用場景例如
- 當客戶需要訪問你的數據,而你又不想暴露所有字段值時,可以使用。
- 當某個需求需要查詢多個表時,可以創建臨時視圖供使用。
操作視圖
與操作普通表一樣
SELECT * FROM link_men_view;
更新視圖
OR REPLACE關鍵字,如果當前數據庫中已經存在指定名稱的視圖時, 當前正在創建的視圖會覆蓋掉原來同名的視圖。
-- 語句
CREATE OR REPLACE VIEW view_name AS
SELECT column1, column2..
FROM table_name
WHERE [condition];
-- 實例
CREATE OR REPLACE VIEW link_men_view AS
SELECT ID, NAME
FROM link_name;
刪除視圖
DROP VIEW link_men_view;
查看所有的視圖
下面的語句要在命令行執行。
select * from sqlite_master where type='view';