# 视图
视图是一种基于数据表的虚表。
- 视图是一张虚表
- 视图建立在已有表的基础之上,视图赖以建立的这些表就叫做基表
- 向视图提供数据内容的语句为
SELECT
语句,可以将视图理解为存储起来的SELECT语句 - 视图向用户提供基表数据的另一钟表现形式
- 视图没有存储真正的数据,真正的数据是存储在基表中
- 我们可以操作视图,但是操作视图最终还是会转化成操作基表
- 一个基表可以有0个或者多个视图
因为在查询时会编写很长的SQL语句,而视图是基于查询的一种虚表,视图可以将查询出来的数据进行封装,在使用时就会非常方便。
使用视图可以专注逻辑,但不会提高查询的效率。
视图是永远不会自动消失的,除非手动删除它。
# 表和视图的区别
- 视图是已经编译好的SQL语句,而表不是
- 视图没有实际的物理内容,表有
- 表是内容,视图是窗口
- 表占用物理空间,视图不占用物理空间,只是逻辑概念的存在,表可以及时对它进行修改,但视图只能由创建的语句来修改
- 表是内模式,视图是外模式
- 从安全的角度来说,视图可以不给用户接触到数据表,从而不知道表的结构
- 表属于全局模式中的表,是实表;视图属于局部模式的表,是虚表
- 视图的建立和删除只会影响视图本身,不会影响对应的表
- 可以用
update
、insert
、delete
等SQL语句修改表中的数据,但是对于视图只能进行select
操作