视图(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;
视图使用场景例如
- 当客户需要访问你的数据,而你又不想暴露所有字段值时,可以使用。
- 当某个需求需要查询多个表时,可以创建临时视图供使用。
操作视图
与操作普通表一样
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';