配色: 字号:
《SQLServer2005数据库案例教程》第6章索引和视图
2023-05-23 | 阅:  转:  |  分享 
  
第6章 索引和视图如果对一个未建立索引的表执行查询操作,SQL Server将逐行扫描表数据页面的数据行,并从中挑选出符合条件的数据行。当一
个表有很多行时,可以想象用这种方式执行一次查询操作所花费的时间是多么漫长。然而,在建立索引后,SQL Server则可以根据索引指
示,直接定位到所要查找的数据行,从而加快了SQL Server的数据检索操作。视图是查看数据表中的数据的一种方法。当一些拥护需要经
常访问和查询数据表中的某些字段构成的数据,但数据库管理员从安全角度考虑又不希望他们直接接触数据时,可以利用视图这一数据对象。视图犹
如数据表的窗户,管理员定义这些窗户的位置后,用户就只能查看他可以看到的数据。6.1 索引 索引是除了表之外的另外一类非常重
要的、存储数据的数据对象。SQL Server经常要对数据进行查询操作,查询速度就成了数据库性能的一个重要指标,索引就是实现数据快
速查询的数据对象。6.1.1 实现过程创建索引有两种方式,使用SQL Server管理平台创建索引, 或者使用Transact
-SQL语言创建索引。以教学管理系统中 的成绩表为例,创建以成绩为索引项的索引。1 .在SQL Server管理平台中,依次展
开【数据库】 |【教学管理系统】|【表】|【成绩表】|【索引】 ,在【索引】项上右击,出现弹出式的快捷菜单
,如图6.1所示 图6.1 新建索引
的快捷菜单2.从弹出的快捷菜单中选择【新建索引】选项,出现如图6.2所示的新建索引对话框。在数据库名称栏中输入“成绩索引”。

图6.2 新建索引对话框3.单击【添加】按纽,弹出选择列的对话框,选择成绩字段,如图6.3所示。
图6.3 选择列对话框4.单击【确
定】按纽,返回到新建索引对话框,如图6.4所示。
图6.4 新建索引对话框5.单击【确定】按纽完成索引的建立,在对象资源管
理器中将出现“成绩索引”项,如图6.5所示。

图6.5 完成成绩索引的建立6.1.2 索引的相关知识点1.聚集索引 又称为聚簇索引。聚集索引中索引
存储的值的顺序和表中的数据的物理存储结构是完全一致的。建立索引时,系统对表的物理数据页中的数据按列进行排序,然后再重新存储到磁盘上
,即聚集索引与数据是混为一体的,它的叶节点中的存储的是实际的数据。聚集索引的特点如下:(1)表的数据按照索引的数据顺序排列。(2)
每个数据表只能建立一个聚集索引,并且会在第一个建立,往往会在主码所在的列或者最常查询的列上建立聚集索引。(3)索引将占用用户数据库
的空间。(4)适合范围查询。(5)建立聚集索引后,更新索引列数据,往往会导致表中物理记录的存储顺序变化,维护的代价会比较大,对于需
要经常更新的列,不宜建立聚集索引。2.非聚集索引 非聚集索引存储的数据顺序一般和表的物理数据的存储不同。尽管查询速度慢一些,
但维护的代价小。而且表中最多可以建立249个非聚集索引以满足多种查询的需要。 3.惟一索引 惟一索引是指索引存储的值必须是
惟一的,不允许两行具有相同的索引值(包括NULL)。 4.复合索引 复合索引是指利用表中的多个列值的组合来构建索引值。SQ
L Server规定复合索引最多使用16个列的值进行组合,而且这些列必须在同一张表中。 5.使用Transact-SQL语言创建
索引 Transact-SQL语言使用CREATE index命令来创建索引6.索引的删除 1) 利用SQL Server管
理平台删除数据库 在SQL Server管理平台中,右击要删除的索引,从弹出的快捷菜单中选择【删除】选项,如图6.6所
示。图6.6 删除索引系统弹出删除对象对话框,如图6.7所示,单击【确认】即可删除索引。图6.7 删除对象对话框2) 利用Drop
语句删除索引 Transact-SQL语言使用DROP index命令来删除索引,并且一次可以删除多个索引。6.2 视
图 视图不是数据表,它仅仅是一些SQL查询语句的集合,作用是按照不同的要求从数据表中提取不同的数据。对于普通的数据库用户来说,视
图似乎是一个真实的表,它具有一组命名的数据列和行。但是,与真实的表不同,在视图中没有存储任何数据,仅仅是一种较简单的访问数据库里其
他表中数据的方式,因此又称为虚表。而数据仍然存储在表中,这些表称为视图的基表。一个视图可以派生于一个或者多个基表,也可以从其他视图
中派生。6.2.1 创建视图(1)在SQL Server管理平台中,依次展开【数据库】|【教学管理系统】|【视图】,在【视图】项上
右击,出现弹出式的快捷菜单,如图6.8所示。


图6.8 新建视图(2)在弹出的菜单中单击【新建视图】选项,弹出视图页面中的
【添加表】选项卡,如图6.9所示。图6.9 视图窗口3.在视图窗口相应的表中选择要在视图中显示的字段,如图6.11所示。

图6.11 选择字段4.最后单击菜单栏中【文件】|【保存视图】,弹出保存视图对
话框,输入视图名称“学生成绩查询”,如图6.12所示。
图6.12 保存视图(5)单击【确定】按
纽,在左侧的对象资源管理器中将出现【学生成绩查询】,如图6.13所示。同样,我们也可以使用Transact-SQL语言中的CREA
TE VIEW来完成【学生成绩查询】视图的建立,其脚本如下:CREATE VIEW 学生成绩查询ASSELECT 学生表.专业,
学生表.学号, 学生表.姓名, 课程表.课程名, 成绩表.成绩FROM 成绩表INNER JOIN 课程表ON 成绩表.课程编号
= 课程表.课程编号INNER JOIN 学生表ON 成绩表.学号=学生表.学号图6.13 【学生成绩查询】视图6.2.2 视图的
应用(1)在对象资源管理器中依次展开【数据库】|【教学管理系统】|【视图】,右击【学生成绩查询】项,弹出右键菜单,如图6.14所示
。图6.14 【学生成绩查询】视图(2)单击打开视图,如图6.15所示,这样就可以很直观的浏览学生成绩。图6.15 通过视图浏览学
生成绩可以看到,视图的有如下优点:(1)可以使视图集中数据、简化和定制不同用户对数据库的不同要求。(2)使用视图可以屏蔽数据的复杂性,用户不必了解数据库的结构,就可以方便地访问和管理数据,简化数据权限管理。(3)视图可以使用户只关心他感兴趣的某些特定数据和他们所负责的特定任务,而那些不需要的或者无用的数据则不在视图中显示。(4)视图提供了简单而有效的安全机制。
献花(0)
+1
(本文系昵称1689447...原创)