视图概述
1. 视图的基本概念
数据视图是另一种在一个或多个数据表上观察数据的途径,可以把数据视图看作是一个能把焦点定在用户感兴趣的数据上的监视器,用户看到的是实时数据。
视图可以被看成是虚拟表或存储查询,用户可以通过视图来插入、更改和删除数据 。
2.使用视图优点
(1)隐蔽数据库的复杂性
开发者可以在不影响用户使用数据库的情况下可以改变数据库内容,即使在基表发生更改或重新组合的情况下,用户还能够通过视图获得一致和非变化的数据。
(2)控制用户提取数据
通过将某些不需要的、敏感的或是不适当的数据控制在视图之外,可以实现为用户定制其个人所使用的表。实际上这也是一种安全机制。用户可以访问某些数据,进行查询和修改,但是表或数据库的其余部分是不可见的,也不能进行访问。
(3)简化数据库用户管理
通过定义不同的视图及有选择地授予视图上的权限,可以将用户、组或角色限制在不同的数据子集内。
•可以将访问限制在基表中行的子集内。
•可以将访问限制在基表中列的子集内。
•可以将访问限制在基表中列和行的子集内。
•可以将访问限制在符合多个基表联接的行内。
•可以将访问限制在基表中数据的统计汇总内。
•可以将访问限制在另一个视图的子集内或视图和基表组合的子集内。
(4)改进性能
通过在视图中存储复杂查询的运算结果并为其他查询提供这些摘要性的结果使数据库的性能得到提高,视图还具备分割数据的功能,而且可以把分割后独立的数据放置在不同的计算机上。
创建视图
1.视图的创建
创建视图的语法格式如下:
CREATE VIEW
[< database_name> . ]
[ < owner > . ]
view_name
[ ( column [ ,...n ] ) ]
[ WITH ENCRYPTION ]
As select_statement
[ WITH CHECK OPTION ]
•view_name:创建的视图的名称;
•column[,...n]:视图中列的字段名;
•WITH ENCRYPTION:对含有CREATE VIEW正文的syscomments表项进行加密
•As select_statement:定义视图的select语句
•WITH CHECK OPTION:强制对视图执行的所有数据修改语句遵照在定义视图的select statement中设置的条件
2.视图定义信息查询
(1)使用Microsoft SQL Server ManagementStudio管理界面
运行“Microsoft SQL Server Management Studio管理界面”,在Library_DB下的视图中选择dbo.book_info_view,单击鼠标右键,在弹出的快捷菜单中讯则“属性”项,便可查看视图book_info_view属性。
(2)通过执行系统存储过程查看视图的定义信息
可以通过执行系统存储过程sp_helptext查看视图的定义信息
EXEC sp_helptext objname
•objname:表示用户需要查看的视图名称
视图的修改和删除
1.视图的修改
修改视图的语法格式如下:
ALTER VIEW
[ < database_name > . ]
[ < owner > . ]
view_name [ ( column [ ,...n ] ) ]
[ WITH ENCRYPTION ]
AS select_statement
[ WITH CHECK OPTION ]
2.视图的删除
删除视图的语法格式如下:
DROP VIEW [ < owner > . ]
view_name
[ ( column [ ,...n ] ) ]
3.通过视图修改数据
在视图中修改的数据操作都将导致对基表数据的修改
在通过视图修改数据时应注意以下几个问题:
•不能对某些特别列进行操作;
•不能在视图中修改在视图中没有参照的列;
•不能在含有视图中没有参照的列的表中利用视图作插入操作;
•不能影响多于一个的基表;
•如果某一视图在定义中指定了WITHCHECK OPTION选项,则进行数据修改时将进行验证。

