视图是从一张或几张基本表或视图导出的表。它与基本表不同,是一个虚表。
之所以说视图是虚表,因为数据库中只存放视图的定义,不存放视图对应的数据,这些数据依旧存放在原来的基本表中。所以一旦基本表中的数据发生了变化,从视图中查询出的数据也就随之改变。从这个意义上讲,视图就像一个窗口,透过它可以看到数据库中自己感兴趣的数据及其变化。
- 创建视图
SQL语句创建视图的一般格式为:
create view <视图名>[列名1,列名2,......] as <子查询> [with check option]
关系数据库管理系统执行创建视图的SQL语句的结果是,将视图的定义存入数据字典,并不执行其中的子查询。只有在对视图进行查询时,才会按照视图定义中的子查询从基本表中将数据查询出来。
关系数据库管理系统执行对视图的查询时,首先进行有效性检查,检查查询中涉及的表、视图是否存在。如果存在,则从数据字典中取出视图的定义,把定义中的子查询和用户查询结合起来,转换成等价的对基本表的查询,然后再执行修正了的查询。这一过程称为视图消解(view resolution)
- 视图的作用
1、简化用户操作
2、使不同的用户以不同的角度看待数据
3、对重构数据库提供了一定程度的逻辑独立性
4、对数据提供一定程度的保护
5、使用视图能够更加清晰的表达查询