SQLite CREATE VIEW 创建视图
SQLite 关键字 CREATE VIEW
用来创建一个视图
视图可以从一个单一的表、多个表或其它视图创建
语法
使用 CREATE VIEW
关键字创建一个视图的基本语法如下
CREATE [TEMP | TEMPORARY] VIEW view_name AS SELECT column1, column2..... FROM table_name WHERE [condition];
可以在 SELECT FROM
语句中包含多个表,类似于一般的 SELECT
语句
如果使用了可选的 TEMP
或 TEMPORARY
关键字,则表示创建一个当前连接可用的临时视图
范例
先运行下面的 SQLite SQL 语句创建测试数据
有两张表,一张是职工表,一张是职工部门表
DROP TABLE tbl_employee; DROP TABLE tbl_department; CREATE TABLE tbl_employee ( id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, name CHAR(64) NOT NULL, age INTEGER NOT NULL, city CHAR(64), salary REAL ); CREATE TABLE tbl_department ( id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, name CHAR(64) NOT NULL, emp_id INTEGER NOT NULL ); INSERT INTO tbl_employee (name,age,city,salary) VALUES ('张三', 25, 'pek', 102400.00 ), ('李四', 18, 'shanghai', 88888.00 ), ('王五', 22, 'hangzhou', 22000.00 ), ('孙六', 32, 'pek', 32000.00 ), ('钱七', 25, 'shanghai', 25000.00 ), ('赵二', 45, 'pek', 45800.00 ), ('冯九', 37, 'chengdu', 15000.00 ); INSERT INTO tbl_department (name,emp_id) VALUES ('行政', 1), ('售后服务', 2 ), ('研发', 3 ), ('研发', 4 ), ('售后服务', 5 ), ('研发', 6 ), ('CEO', 7 );
一般情况下我们查询员工所属部门的时候会使用下面的语句
SELECT tbl_employee.id,tbl_employee.name,tbl_department.name FROM tbl_department,tbl_employee WHERE tbl_employee.id = tbl_department.emp_id;
输出结果如下
id name name ---------- ---------- ---------- 1 张三 行政 2 李四 售后服务 3 王五 研发 4 孙六 研发 5 钱七 售后服务 6 赵二 研发 7 冯九 CEO
因为查询比较频繁,所以我们可以使用下面的语句给这个查询创建一个视图
CREATE VIEW view_employee AS SELECT tbl_employee.id,tbl_employee.name,tbl_department.name FROM tbl_department,tbl_employee WHERE tbl_employee.id = tbl_department.emp_id;
现在,可以查询 view_employee
,与查询实际表的方式一样
SELECT * FROM view_employee;
输出结果如下
SELECT * FROM view_employee; id name name ---- ------------- ---- 1 张三 行政 2 李四 售后服务 3 王五 研发 4 孙六 研发 5 钱七 售后服务 6 赵二 研发 7 冯九 CEO