一、概念
视图,虚拟表,从一个表或者多个表中查询出来的表,作用和真实表一样,包含有一系列带有行和列的数据。视图中用户可以使用SELECT语句查询数据,也可以使用INSERT,UPDATE,DELETE修改数据,视图可以使用户操作方便,并保障数据库系统安全。
二、特点
- 优点
- 简单化,数据所见即所得
- 安全性,用户只能查询或修改他们所能见到的数据
- 逻辑独立性,可以屏蔽真实表变化所带来的影响
- 缺点
- 性能相对较差,简单的查询也会稍显复杂
- 修改不方便,特别是复杂的聚合视图基本无法修改
三、创建视图
语法:CREATE VIEW 视图名 AS 查询数据源表语句
1. 创建
CREATE VIEW t_empInfoASSELECT employee_id, first_name, email, salary FROM t_employees;
2. 使用视图
# 查询视图中id为100的员工信息
SELECT * FROM t_empInfo WHERE employee_id=100;
四、视图修改
方式1:CREATE OR REFERENCE VIEW 视图名 AS 查询语句
方式2:ALERT VIEW 视图名 AS 查询语句
# 方式1:如果视图存在则进行修改,反之,进行创建
CREATE OR REPLACE VIEW t_empInfo
AS
SELECT employee_id, first_name, email, salary FROM t_employees;
# 方式2:直接对已存在的视图进行修改
ALERT VIEW t_empInfo
AS
SELECT employee_id, first_name, email, salary FROM t_employees;
五、删除视图
语法:DROP VIEW 视图名
不影响原表
六、视图的注意事项
注意:
- 视图不会独立存储数据,原表发生改变,视图也发生改变。没有优化任何查询性能
- 如果视图包含以下结构中的一种,则视图不可更新
- 聚合函数的结果
- DISTINCT 去重后的结果
- GROUP BY 分组后的结果
- HAVING 筛选过滤后的结果
- UNION、UNION ALL 联合后的结果
