欢迎来到天天文库
浏览记录
ID:40239011
大小:1.38 MB
页数:68页
时间:2019-07-28
《SQL Server应用教程 郑阿奇 刘启芬 顾韵华 第5章 索引与数据完整性》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第5章索引与数据完整性5.1索引5.2默认值约束及默认值对象5.3数据完整性5.1索引索引是根据表中一列或若干列按照一定顺序建立的列值与记录行之间的对应关系表。在数据库系统中建立索引主要有以下作用:●快速存取数据;●保证数据记录的唯一性;●实现表与表之间的参照完整性;●在使用ORDERBY、GROUPBY子句进行数据检索时,利用索引可以减少排序和分组的时间。5.1.1索引的分类1.聚集索引聚集索引将数据行的键值在表内排序并存储对应的数据记录,使得数据表物理顺序与索引顺序一致。SQLServer200
2、0是按B树组织聚集索引的,B树的叶节点存放数据页信息。由于数据记录按聚集索引键的次序存储,因此聚集索引对查找记录很有效。一个表只能有一个聚集索引。2.非聚集索引非聚集索引完全独立于数据行的结构。SQLServer2000也是按B树组织非聚集索引的,与聚集索引不同之处在于:非聚集索引B树的叶节点不存放数据页信息,而是存放非聚集索引的键值,并且每个键值项都有指针指向包含该键值的数据行。对于非聚集索引,表中的数据行不按非聚集键的次序存储。在非聚集索引内,从索引行指向数据行的指针称为行定位器。行定位器的结构
3、取决于数据页的存储方式是堆集还是聚集。对于堆集,行定位器是指向行的指针。对于有聚集索引的表,行定位器是聚集索引键,只有在表上创建聚集索引时,表内的行才按特定顺序存储。这些行按聚集索引键顺序存储。如果一个表只有非聚集索引,它的数据行将按无序的堆集方式存储。一个表中最多只能有一个聚集索引,但可有一个或多个非聚集索引。当在SQLServer2000上创建索引时,可指定是按升序还是降序存储键。5.1.2索引的创建●对于XS表,按学号建立主键索引(PRIMARYKEY约束),索引组织方式为聚集索引;●对于XS
4、表,按姓名建立唯一索引(UNIQUE约束),索引组织方式为非聚集索引;●对于KC表,按课程号建立主键索引或者唯一索引,索引组织方式为聚集索引;●对于XS_KC表,按学号+课程号建立唯一索引,索引组织方式为聚集索引。在SQLServer2000中,可利用企业管理器创建上述索引,也可以利用SQL命令,通过查询分析器建立索引。下面以XS表中按学号建立索引为例,介绍索引的创建方法。1.通过企业管理器建立索引第1步进入企业管理器,打开XSCJ数据库;第2步选择选择XS表的图标,右击,出现如图5.1所示的快捷菜
5、单,选择“设计表”菜单项,出现如图5.2所示XS的表设计器界面;在XSCJ数据库中,经常要对XS、KC、XS_KC三个表查询和更新,为了提高查询和更新速度,可以考虑对三个表建立如下索引:5.1.2索引的创建图5.1XS表图标快捷菜单5.1.2索引的创建图5.2XS表设计器界面5.1.2索引的创建第3步在XS表设计器界面上右击,出现如图5.3所示的快捷菜单,快捷菜单中选择“索引/键”菜单项,出现如图5.4所示XS的属性界面;图5.3XS表设计器的快捷菜单5.1.2索引的创建图5.4表XS的属性界面5.
6、1.2索引的创建第4步在“索引/键”属性页选择“新建”命令,然后,确定新索引的名称(用系统缺省的名或重新取名);在“列名”下选择要创建索引的列,在此选择“学号”这一列,最多可选择16列。为获得最佳性能,最好只选择一列或两列。然后关闭,索引即创建好了。进入XS表设计器的快捷菜单(在XS表设计器界面上右击),选择“索引/键”菜单项,可以查看已建立的索引。对于前面建立的索引,如图5.5所示。此下拉表中列出了表XS创建的所有索引图5.5表XS的属性界面5.1.2索引的创建2.利用SQL命令建立索引语法格式:
7、CREATE[UNIQUE]/*是否为唯一索引*/[CLUSTERED
8、NONCLUSTERED]/*索引的组织方式*/INDEXindex_name/*索引名称*/ON{table
9、view}(column[ASC
10、DESC][,...n])/*索引定义的依据*/[WITH[,...n]]/*索引选项*/[ONfilegroup]/*指定索引文件所在的文件组*/其中:::={PAD_INDEX
11、FILLFACTOR=fillfactor
12、IG
13、NORE_DUP_KEY
14、DROP_EXISTING
15、 STATISTICS_NORECOMPUTE
16、 SORT_IN_TEMPDB}5.1.2索引的创建说明:●UNIQUE表示为表或视图创建唯一索引(即不允许存在索引值相同的两行)。例如:对于XS表,根据学号创建唯一索引,即不允许有两个相同的学号出现。此关键字的使用有两点需注意:(1)对于视图创建的聚集索引必须是UNIQUE索引。(2)如果对已存在数据的表创建唯一索引,必须保证索引项对应的值无重复值。●CLUSTER
此文档下载收益归作者所有