开发学院

您的位置:首页>教程>正文

教程正文

SQLite 视图

SQLite 视图

  视图是一个特殊SQL语句,它以关联的名称存储在数据库中,它实际上是以预定义SQL的形式组成的表。

  视图可以包含表的所有行或一个或多个表中的选定行。可以从一个或多个表创建视图,这些表依赖于编写的SQLite查询来创建视图。

  视图是一种虚拟的表,视图有如下特性:

  •   以直观的方式或以自然的方式构造数据,让用户更容易理解。

  •   限制对数据的访问,以达到用户只能看到特定数据的目的。

  •   汇总各种表格中的数据,这些数据可用于生成报告。

  •   SQLite视图是只读的,因此无法对视图执行删除、插入或更新语句。但是,您可以在试图删除、插入或更新视图时触发的视图上创建触发器,并在触发器主体中执行您需要的操作。

创建视图

  使用CREATE VIEW语句创建视图。可以从单个表、多个表或其他视图创建新视图。

  以下是创建视图的基本语法。

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

  您可以在SELECT语句中包含多个表,其方式与在普通SQL SELECT查询中使用它们的方式相似。如果存在可选的TEMP或temporate关键字,将在TEMP数据库中创建视图。

例子

  假设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一起使用即可。基本的删除视图语法如下所示

sqlite> DROP VIEW view_name;

  下面命令将会删除COMPANY_VIEW视图:

sqlite> DROP VIEW COMPANY_VIEW;