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;