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 语句

如果使用了可选的 TEMPTEMPORARY 关键字,则表示创建一个当前连接可用的临时视图

范例

先运行下面的 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 

SQLite 基础教程

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.