视图是从一个或几个基本表(或视图)导出的表。它与基本表不同,是一个虚表。数据库中只存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中。所以一旦基本表中的数据发生变化,从视图中查询的数据也就随之改变了。
视图的更新操作有一定的限制。
更新视图
更新视图是指通过视图来插入,删除和修改数据
由于视图是不实际存储数据的虚表,因此对视图的更新最终要转换为对基本表的更新。
对视图的更新操作是通过视图消解,转换为基本表的更新操作
为防止用户通过视图对数据进行增加删除修改ishi,有意无意地对不属于视图范围内的基本表进行操作,可在定义视图时加上 WITH CHECK OPTION 子句。这样在视图上增删改数据时,关系数据库管理系统会检查视图定义中的条件,若不满足条件则拒绝执行该操作。
并不是所有的视图都是可更新的,因为有些视图的更新不能唯一地有意义地转换成对相应基本表的更新。
一般地,行列子集视图是可更新的。
行列子集视图:若一个视图是从单个基本表导出来的,并且只是去掉了基本表的某些行和某些列,但保留了主码,我们称这类视图为行列子集视图。
视图的作用:
1视图能够简化用户的操作
2视图使用户能以多种角度看待同一数据
3视图对重构数据库提供了一定程度的逻辑独立性
4视图能够对机密数据提供安全保护
5适当利用视图可以更清晰地表达查询