欢迎来到天天文库
浏览记录
ID:50047726
大小:645.50 KB
页数:31页
时间:2020-03-08
《数据库技术与应用——SQL Server 2008 第2版 教学课件 作者 张建伟 梁树军 金松河 第9章 视图.ppt》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、第9章视图第9章视图9.1视图的作用和基本类型9.2视图的创建9.3视图的修改9.4通过视图查询数据9.5通过视图更新数据9.6视图的删除本章小结9.1视图的作用和基本类型视图是查看数据库中表数据的一种方式。它提供了存储预定义的查询语句作为数据库中的对象供以后使用的能力。视图是一种逻辑对象,是一种虚拟表。除非是索引视图,否则视图不占用物理存储空间。如果说一张表像一个房间的话,那么视图就像是房间的窗户——即使不进入房间,也可以通过窗户看到房间里的部分布局。但是,视图又与窗户不同,通过视图不仅能看到一个表中的部分数据,还可以看到多个表
2、中的部分数据,甚至可以通过视图更改表中的数据。视图的内容在视图中被查询的表称为视图的基表。大多数的SELECT语句都可以用在视图的创建中。一般地,视图的内容包括:基表中列的子集或行的子集,也就是说视图可以是基表的一部分。两个或多个基表的联合,也就是说视图是对多个基表进行联合检索的SELECT语句。两个或多个基表的连接,也就是说视图是通过对若干个基表的连接生成的。基表的统计汇总,也就是说视图不仅仅是基表的投影,还可以是经过对基表的各种复杂运算而得到的结果。另外一个视图的子集,也就是说视图既可以基于表,也可以基于另外一个视图。视图和基
3、表的混合,在视图的定义中,视图和基表可以起到同样的作用。视图的优点从技术上来讲,视图是SELECT语句的存储定义。可以在视图中定义一个或多个表的1024列,所能定义的行数是没有限制的。使用视图有很多有优点,例如使得查询简单化、提高数据的安全性、掩码数据库的复杂性以及为了向其他应用程序输出而重新组织数据等。(1)查询简单化(2)提高数据的安全性(3)掩码数据库的复杂性。(4)为向其他应用程序输出而重新组织数据。视图的分类在MicrosoftSQLServer2008系统中,可以把视图分成3种类型,即标准视图、索引视图和分区视图。标准
4、视图组合了一个或多个表中的数据,您可以获得使用视图的大多数好处,包括将重点放在特定数据上及简化数据操作。索引视图是被物理化、具体化了的视图,即它已经过计算并存储。可以为视图创建索引,即对视图创建一个唯一的聚集索引。索引视图可以显著提高某些类型查询的性能。索引视图尤其适于聚合许多行的查询。但它们不太适于经常更新的基本数据集。分区视图在一台或多台服务器间水平连接一组成员表中的分区数据。这样,数据看上去如同来自于一个表。如,联接同一个SQLServer实例中的成员表的视图是一个本地分区视图。9.2视图的创建9.2.1在图形界面下创建视图
5、9.2.2用SQL语句创建视图9.2.1在图形界面下创建视图本节将以创建学生选课成绩视图为例,介绍如何在图形界面下创建视图。打开MicrosoftSQLServerManagementStudio环境的“对象资源管理器”(如果该窗口关闭,选中“视图”菜单,选择“对象资源管理器”选项,即可打开该窗口),打开指定的服务器实例,选中“数据库”节点,再打开指定的数据库,例如“CJGL”数据库。右键单击“视图”节点,从弹出菜单中选择“新建视图”命令,则出现如图9.1所示的“添加表”对话框。从“添加表”对话框中选择将要用于视图定义的基表、视图
6、或函数。一个视图可以有多个基表。选中某个表,单击“添加”按钮,该表就添加到了视图设计器中,如图9.2所示。视图设计器包含四个窗格:“关系图”窗格、“条件”窗格、“SQL”窗格和“结果”窗格。图9.1添加表”对话框图9.2视图设计器然后选择视图中要显示的列,这里选中Student表中的studentName列、sex列和speciality列,Course表中的courseName列,Grade表中的grade列。在条件窗格中为选中的列设置别名、排序类型、排序顺序、是否分组、筛选条件等。单击工具栏的“保存”按钮,输入视图名称vw_s
7、tu_gra1,保存视图的定义。单击“执行”按钮,在结果窗格显示视图的执行结果。如图9.3所示。图9.3视图执行结果9.2.2用SQL语句创建视图除了使用图形化工具定义视图,还可以使用CREATEVIEW语句定义视图。需要注意的是,只能在当前的数据库中创建视图,视图的名称必须符合命名规则,因为视图的外表和表的外表时一样的,因此应该使用一种能与表区别开的命名机制,使人容易分辨出表和视图,一般情况下,选择在视图名称前使用vw_作为前缀。使用CREATEVIEW语句创建视图的基本语法为:CREATEVIEWview_name[(colu
8、mn[,...n])][WITHENCRYPTION]ASselect_statement[WITHCHECKOPTION][;]参数说明column:视图中的列使用的名称。组成视图的列名要么全部省略要么全部指定,没有第三种选择。如果省略了视图的各
此文档下载收益归作者所有