SQLite進階-17.視圖

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

視圖使用場景例如

  1. 當客戶需要訪問你的數據,而你又不想暴露所有字段值時,可以使用。
  2. 當某個需求需要查詢多個表時,可以創建臨時視圖供使用。

操作視圖

與操作普通表一樣

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';
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章