SQLite 关键字

SQLite CREATE VIEW 关键字用于创建 SQLite 视图,它是基于 SQLite 语句创建的虚拟表。视图包含行和列,就像普通表一样。所有 SQLite 函数,WHEREHAVINGJOIN 语句可用于创建 SQLite VIEW。

语法

在 SQLite 中使用 CREATE VIEW 关键字的语法如下:

CREATE VIEW [IF NOT EXISTS] view_name AS
SELECT column1, column2, column3, ...
FROM table_name
WHERE condition(s); 

IF NOT EXISTS 是一个可选参数,仅当数据库中不存在视图时才有条件地创建视图。如果创建的视图已存在,则会引发错误。

示例:

考虑一个名为 Employee 的数据库表,其中包含以下记录:

EmpIDNameCityAgeSalary
1JohnLondon253000
2MarryNew York242750
3JoParis272800
4KimAmsterdam303100
5RameshNew Delhi283000
6HuangBeijing282800

下面提到的SQLite语句用于在Employee表上创建一个视图,该表包含工资大于2800的员工的所有记录。

CREATE VIEW Employee_Salary_GT_2800 AS
SELECT * FROM Employee WHERE Salary > 2800; 

创建 VIEW 后,可以按如下方式使用:

SELECT * FROM Employee_Salary_GT_2800; 

这将产生如下所示的结果:

EmpIDNameCityAgeSalary
1JohnLondon253000
4KimAmsterdam303100
5RameshNew Delhi283000

更改或更新视图

在 SQLite 中,无法更改或更新视图。不过,这可以通过先删除视图并创建包含更新内容的视图来实现。

下面的语句用于更新上面的视图,其中包含工资大于 2800 的员工和年龄的所有记录大于 25。

/* 删除之前的视图 */
DROP VIEW Employee_Salary_GT_2800;

/* 创建新的视图 */
CREATE VIEW Employee_Salary_GT_2800 AS
SELECT * FROM Employee WHERE Salary > 2800 AND AGE > 25; 

更新视图后,可以使用以下查询查看其内容:

SELECT * FROM Employee_Salary_GT_2800; 

这将产生如下所示的结果:

EmpIDNameCityAgeSalary
4KimAmsterdam303100
5RameshNew Delhi283000