总论:什么是视图
视图时从一个或几个基本表(或视图)导出的表,它只是基本表的虚表,数据库中只存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表里。
因此当基本表中的数据发生变化时,从视图中查询出的数据也随之改变了(已经尝试过),通过视图便能看到数据库中数据的变化
视图一旦定义,就可以和基本表一样被查询、被删除。也可以在一个视图之上再定义一个新的视图,但对视图的更新(增,删,改)有一定的限制。
一、建立视图
SQL语言使用 create view 建立视图
建立01班学生的视图
create view 01_class-------视图名 还可以后边指定列名(姓名 学号。不过要对应)
select Sno,Sname
from Student
where Sclass='01'
当将select 后面指定*时 那么在修改基本表的结构后,基本表与视图的映像关系受到破坏,导致视图不可用 所以建立视图时尽量指点列名。
with check option 表示谓词条件---对视图进行update insert delete 操作时要保证
以下情况必须列出的列名:
1.某个目标列不是单纯的属性名,而是聚集函数或者列表达式
2.多表连接时选出了几个同名列作为视图的字段
3.需要在视图中为某个列启用新的更合适的名字
说明:
RDBMS只是执行create 结果只是把视图的定义存入数据字典,并不执行其中的select语句。只是在对视图查询时,才按视图的定义从基本表中将数据查出。
当在定义视图时加上了with check option 时 以后对该视图的操作 RDBMS会自动加上以上的where条件