视图
一、视图概述
-
概念
一个或多个数据表里的数据的逻辑显示,视图并不存储数据,是一种虚拟表
-
引入
2.1 可以帮助我们只使用表的一部分,而不是所有的表
2.2 可以针对不同的用户指定不同的查询视图
-
理解
3.1 视图的创建和删除不影响对应的基表,数据的增删改会影响基表
3.2 是存储起来的SELECT语句
3.3 向用户提供基表数据的另一种表现形式。
二、创建视图
三、查看视图
-
查看数据库的视图对象
SHOW TABLES;
-
查看视图的结构
DESC 视图名称;
-
查看视图的属性信息
# 查看视图的存储引擎、版本、数据行数和数据大小等 SHOW TABLE STATUS LIKE '视图名'\G;
如果执行结果中,Comment为VIEW,说名该表是视图,其它信息为null,说明该表是虚表
-
查看视图的详细定义信息
SHOW CREATE VIEW 视图名;
四、视图的增删改
- 同表的增删改
- 不建议视图的增删改,要在表中进行增删改
五、视图的优点
-
简化查询
可以使开发人员无需关系视图对应得数据表结构,表与表间得关联关系,数据之间得业务逻辑和查询条件,只需简单操作视图
-
减少数据冗余
因为其不存储数据,故不用占用数据存储的资源,减少数据冗余
-
数据安全
MySQL可将用户数据的访问限制在某些视图(数据的结果集)上,可理解为视图具有隔离性,相当于在用户和实际的数据表之间加了一层虚拟表,用户就不需要查询数据表,可直接通过视图获取信息。
-
适应灵活多变得需求
当业务系统的需求发生变化,无需改动数据表结构,通过改动视图可减少改动工作量
-
分析复杂得查询逻辑
可将复杂的查询逻辑,分解到多个视图中,再将创建的多个视图结合起来,完成复杂的查询逻辑
注意:
如果实际数据表的结构变更了,我们需要及时对相关的视图进行相应的维护,如果在项目中视图过多,会导致数据库维护成本的问题,所以创建视图要结合实际项目需求