# 视图

视图是一种基于数据表的虚表。

  • 视图是一张虚表
  • 视图建立在已有表的基础之上,视图赖以建立的这些表就叫做基表
  • 向视图提供数据内容的语句为SELECT语句,可以将视图理解为存储起来的SELECT语句
  • 视图向用户提供基表数据的另一钟表现形式
  • 视图没有存储真正的数据,真正的数据是存储在基表中
  • 我们可以操作视图,但是操作视图最终还是会转化成操作基表
  • 一个基表可以有0个或者多个视图

因为在查询时会编写很长的SQL语句,而视图是基于查询的一种虚表,视图可以将查询出来的数据进行封装,在使用时就会非常方便。

使用视图可以专注逻辑,但不会提高查询的效率。

视图是永远不会自动消失的,除非手动删除它。

# 表和视图的区别

  1. 视图是已经编译好的SQL语句,而表不是
  2. 视图没有实际的物理内容,表有
  3. 表是内容,视图是窗口
  4. 表占用物理空间,视图不占用物理空间,只是逻辑概念的存在,表可以及时对它进行修改,但视图只能由创建的语句来修改
  5. 表是内模式,视图是外模式
  6. 从安全的角度来说,视图可以不给用户接触到数据表,从而不知道表的结构
  7. 表属于全局模式中的表,是实表;视图属于局部模式的表,是虚表
  8. 视图的建立和删除只会影响视图本身,不会影响对应的表
  9. 可以用updateinsertdelete等SQL语句修改表中的数据,但是对于视图只能进行select操作