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;

下一节:sqlite 事务

sqlite教程

相关文章