视图
2024/12/19大约 2 分钟
视图
视图: 虚拟机表 ,将查询出的数据用视图的形式存起来,以便于再次查询
create view v_name as select ...
一、是什么
1.1、概念
视图,虚拟表,从一个表或多个表中查询出来的表,作用和真实表一样,包含一系列带有行和列的数据。视图中,用户可以使用SELECT语句查询数据,也可以使用INSERT,UPDATE,DELETE修改记录,视图可以使用户操作方便,并保障数据库系统安全。
1.2、特点
优点
简单化,数据所见即所得。
安全性,用户只能查询或修改他们所能见到得到的数据。
逻辑独立性,可以屏蔽真实表结构变化带来的影响。
缺点
性能相对较差,简单的查询也会变得稍显复杂。
修改不方便,特变是复杂的聚合视图基本无法修改。
二、视图的操作
2.1、创建视图
# 语法
CREATE VIEW 视图名 AS 查询语句;
# 创建emp_info视图,通过视图从emp表中查询员工编号、姓名、总工资
CREATE VIEW emp_info
AS
SELECT empno '编号', ename '姓名', sal+IFNULL(comm, 0) '总工资' FROM emp;
2.2、使用视图
# 查询编号为1003的员工信息
SELECT * FROM emp_info WHERE 编号=1003;
2.3、修改视图
# 语法 方式1
CREATE OR REPLACE VIEW 视图名 AS 查询语句;
# 语法 方式2
ALTER VIEW 视图名 AS 查询语句;
CREATE OR REPLACE VIEW emp_info
AS
SELECT empno '编号', ename '姓名', sal '基本工资' FROM emp;
ALTER VIEW emp_info
AS
SELECT empno '编号', ename '姓名', sal '基本工资' FROM emp;
2.4、删除视图
删除视图不会影响原表
# 语法
DROP VIEW 视图名;
DROP VIEW emp_info;
2.5、注意事项
视图不会独立存储数据,原表发生改变,视图也发生改变。没有优化任何查询性能。
如果视图包含以下结构中的一种,则视图不可更新
- 聚合函数的结果
- DISTINCT 去重后的结果
- GROUP BY 分组后的结果
- HAVING 筛选过滤后的结果
- UNION、UNION ALL 联合后的结果