鍍金池/ 教程/ 數(shù)據(jù)庫(kù)/ SQLite 視圖
SQLite Having 子句
SQLite 運(yùn)算符
SQLite 注入
SQLite Delete 語(yǔ)句
SQLite – Python
SQLite 數(shù)據(jù)類型
SQLite 簡(jiǎn)介
SQLite 創(chuàng)建數(shù)據(jù)庫(kù)
SQLite Vacuum
SQLite Group By
SQLite 日期 & 時(shí)間
SQLite AND/OR 運(yùn)算符
SQLite 刪除表
SQLite Distinct
SQLite Alter 命令
SQLite PRAGMA
SQLite 約束
SQLite 創(chuàng)建表
SQLite Like 子句
SQLite Limit 子句
SQLite Autoincrement
SQLite 子查詢
SQLite – C/C++
SQLite – PHP
SQLite 命令
SQLite Order By
SQLite Select 語(yǔ)句
SQLite Unions 子句
SQLite – Perl
SQLite – Java
SQLite 別名
SQLite 常用函數(shù)
SQLite Explain(解釋)
SQLite NULL 值
SQLite Glob 子句
SQLite 表達(dá)式
SQLite 視圖
SQLite Where 子句
SQLite Truncate Table
SQLite 索引
SQLite Insert 語(yǔ)句
SQLite 安裝
SQLite Indexed By
SQLite 分離數(shù)據(jù)庫(kù)
SQLite 觸發(fā)器
SQLite 語(yǔ)法
SQLite Joins
SQLite Update 語(yǔ)句
SQLite 附加數(shù)據(jù)庫(kù)
SQLite 事務(wù)

SQLite 視圖

視圖(View)只不過(guò)是通過(guò)相關(guān)的名稱存儲(chǔ)在數(shù)據(jù)庫(kù)中的一個(gè) SQLite 語(yǔ)句。視圖(View)實(shí)際上是一個(gè)以預(yù)定義的 SQLite 查詢形式存在的表的組合。

視圖(View)可以包含一個(gè)表的所有行或從一個(gè)或多個(gè)表選定行。視圖(View)可以從一個(gè)或多個(gè)表創(chuàng)建,這取決于要?jiǎng)?chuàng)建視圖的 SQLite 查詢。

視圖(View)是一種虛表,允許用戶實(shí)現(xiàn)以下幾點(diǎn):

  • 用戶或用戶組查找結(jié)構(gòu)數(shù)據(jù)的方式更自然或直觀。
  • 限制數(shù)據(jù)訪問(wèn),用戶只能看到有限的數(shù)據(jù),而不是完整的表。
  • 匯總各種表中的數(shù)據(jù),用于生成報(bào)告。

SQLite 視圖是只讀的,因此可能無(wú)法在視圖上執(zhí)行 DELETE、INSERT 或 UPDATE 語(yǔ)句。但是可以在視圖上創(chuàng)建一個(gè)觸發(fā)器,當(dāng)嘗試 DELETE、INSERT 或 UPDATE 視圖時(shí)觸發(fā),需要做的動(dòng)作在觸發(fā)器內(nèi)容中定義。

創(chuàng)建視圖

SQLite 的視圖是使用 CREATE VIEW 語(yǔ)句創(chuàng)建的。SQLite 視圖可以從一個(gè)單一的表、多個(gè)表或其他視圖創(chuàng)建。

CREATE VIEW 的基本語(yǔ)法如下:

    CREATE [TEMP | TEMPORARY] VIEW view_name AS
    SELECT column1, column2.....
    FROM table_name
    WHERE [condition];

您可以在 SELECT 語(yǔ)句中包含多個(gè)表,這與在正常的 SQL SELECT 查詢中的方式非常相似。如果使用了可選的 TEMP 或 TEMPORARY 關(guān)鍵字,則將在臨時(shí)數(shù)據(jù)庫(kù)中創(chuàng)建視圖。

實(shí)例

假設(shè) 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

現(xiàn)在,下面是一個(gè)從 COMPANY 表創(chuàng)建視圖的實(shí)例。視圖只從 COMPANY 表中選取幾列:

    sqlite> CREATE VIEW COMPANY_VIEW AS
    SELECT ID, NAME, AGE
    FROM  COMPANY;

現(xiàn)在,可以查詢 COMPANY_VIEW,與查詢實(shí)際表的方式類似。下面是實(shí)例:

    sqlite> SELECT * FROM COMPANY_VIEW;

這將產(chǎn)生以下結(jié)果:

    ID          NAME        AGE
    ----------  ----------  ----------
    1           Paul        32
    2           Allen       25
    3           Teddy       23
    4           Mark        25
    5           David       27
    6           Kim         22
    7           James       24

刪除視圖

要?jiǎng)h除視圖,只需使用帶有 view_name 的 DROP VIEW 語(yǔ)句。DROP VIEW 的基本語(yǔ)法如下:

    sqlite> DROP VIEW view_name;

下面的命令將刪除我們?cè)谇懊鎰?chuàng)建的 COMPANY_VIEW 視圖:

    sqlite> DROP VIEW COMPANY_VIEW;