目录
视图
介绍
语法
使用
本质
修改数据
排序覆盖
视图
介绍
是一种虚拟表,它不存储实际的数据,而是基于查询结果动态生成数据
- 将查询结果以表结构保存
- 视图和基表之间会互相影响
视图可以基于一张或多张表来创建,并且可以像普通表一样进行查询操作
- 主要功能是简化复杂查询、提高数据安全性和为不同用户提供定制化的数据视图
- 比如:后续想高频使用某个多表查询的结果,可以使用视图来将这个查询结果保存起来,而不用每次都输入语句来获取
和读视图没有任何关系,只是名字类似
语法
create view 视图名 as select语句
使用
本质
- 注意这里的提示语句,mysql认为刚刚创建出的视图就是Table
并且,我们在查询表的时候也能看见它:
- 所以视图可以被认为是表(但是要注意,它和真正的物理表有根本性的不同)
这里视图只有.frm文件,也就是存放表结构信息的文件
- 它没有自己的数据文件,因为它的数据都来源于其他表
修改数据
视图里修改数据,也会影响原来的表
- 如果是多表查询,数据来源于哪张表,哪张表的数据就会被影响
反过来修改源表,也会使视图中的对应数据被修改
- 数据都是互相打通的
- 因为每次查看视图都是动态形成的
感觉可以理解成c++中的引用变量
排序覆盖
如果对视图使用order by排序
- 如果本身创建视图使用的select语句中也有order by,那旧一点的那个会被覆盖
- 相当于就近原则