文章目录
- 视图
- 基本使用
- 视图规则与限制
视图
视图是一个虚拟表,其内容由查询定义,同真实的表一样,视图包含一系列带有名称的列和行数据,视图的数据变化会影响到基表,基表的数据变化也会影响到视图,
- 主要作用是,将表的内容,常用需要的部分创建一个部分,这样使用视图的时候,可以减少查询的数据量,
- 比如用户资料,有的用户是长期在线,有的用户基本不上线,那么就可以为长期用户创建视图,减少查询,
基本使用
创建视图:
create view 视图名 as select语句 from 表名字 where 限制条件;
删除视图
drop view 视图名;
例子:
以下面的员工表和部门表为例,我们想查找员工姓名以及其部门名称:但是每次都要查太麻烦了,所以可以构建一个视图,只需要在上一条语句前加上create view 视图名 as
即可:
创建视图,也会形成对应的表结构, 创建视图就相当于创建一张表,并且也以文件的形式保存在MySQL目录中
- 注意:视图只是对表的检索,视图只有表结构,没有数据,只在内存中存在(可以认为:视图是一个虚拟表); 把视图看成对表的检索SQL语句就行了
- 修改了视图,对基表数据有影响
- 修改了基表,对视图有影响
视图和基表是互相影响的,也就是修改视图的元素,基表中的元素也会被修改;修改基表也会影响视图,
视图规则与限制
- 与表一样,必须唯一命名(不能出现同名视图或表名)
- 创建视图数目无限制,但要考虑复杂查询创建为视图之后的性能影响
- 视图不能添加索引,也不能有关联的触发器或者默认值
- 视图可以提高安全性,必须具有足够的访问权限
- order by 可以用在视图中,但是如果从该视图检索数据 select 中也含有 order by ,那么该视图中的order by 将被覆盖
- 视图可以和表一起使用
- 视图中的数据来源于基表