《SQL Server2000数据库及应用》-李伟红-电子教案 第5章 索引的创建与维护

上传人:E**** 文档编号:89401179 上传时间:2019-05-24 格式:PPT 页数:47 大小:94.51KB
返回 下载 相关 举报
《SQL Server2000数据库及应用》-李伟红-电子教案 第5章  索引的创建与维护_第1页
第1页 / 共47页
《SQL Server2000数据库及应用》-李伟红-电子教案 第5章  索引的创建与维护_第2页
第2页 / 共47页
《SQL Server2000数据库及应用》-李伟红-电子教案 第5章  索引的创建与维护_第3页
第3页 / 共47页
《SQL Server2000数据库及应用》-李伟红-电子教案 第5章  索引的创建与维护_第4页
第4页 / 共47页
《SQL Server2000数据库及应用》-李伟红-电子教案 第5章  索引的创建与维护_第5页
第5页 / 共47页
点击查看更多>>
资源描述

《《SQL Server2000数据库及应用》-李伟红-电子教案 第5章 索引的创建与维护》由会员分享,可在线阅读,更多相关《《SQL Server2000数据库及应用》-李伟红-电子教案 第5章 索引的创建与维护(47页珍藏版)》请在金锄头文库上搜索。

1、第5章 索引的创建与维护,北华航天工业学院 李伟红,本章学习目标,了解索引的概念及作用; 掌握索引的分类; 掌握创建索引的方法; 掌握查看和修改索引的方法; 掌握删除索引的方法。,5.1 索引概述,5.1.1 索引简介,在数据库中,如果想在某个数据表中快速查找满足条件的记录,可以创建索引。 使用索引有许多好处。例如,通过创建惟一索引,可以保证数据记录的惟一性;使用索引可以大大加快数据检索速度;使用索引还可以加速表与表之间的连接。,5.1.1 索引简介,建立索引的一般原则是: 对经常用来检索的字段建立索引。 对数据表中的主键建立索引。 对数据表中的外键建立索引。 对经常用于连接的字段建立索引。,

2、5.1.2 索引的分类,1聚集索引和非聚集索引 在SQL Server 2000数据库中,按照存储结构的不同,可以将索引分为两类,即聚集索引和非聚集索引。,1聚集索引和非聚集索引,聚集索引对表在物理数据页中的数据按列进行排序,然后再重新存储到磁盘上。一个表只能有一个聚集索引。,1聚集索引和非聚集索引,创建聚集索引时应该考虑以下几个因素: 每个表只能有一个聚集索引。 创建任何非聚集索引之前首先要创建聚集索引。 要保证有足够的空间创建聚集索引。,1聚集索引和非聚集索引,非聚集索引具有完全独立于数据行的结构,使用非聚集索引不会影响数据表中记录的实际存储顺序,而且它比聚集索引需要较少的存储空间,但检索

3、效率比聚集索引低。当用户需要建立多个索引时,就需要使用非聚集索引了。,1聚集索引和非聚集索引,在下列情况下,可以考虑使用非聚集索引: 含有大量惟一值的字段。 返回很小的或者单行结果集的检索。 使用ORDER BY子句的查询。,2复合索引,如果需要对多个字段的组合创建索引,则可以建立复合索引。在一个复合索引中最多可以有16个字段组合,并且复合索引中的所有字段必须在同一个表中。,3惟一索引,如果要求索引中的字段值不能重复,可以建立惟一索引。 对于已建立了惟一索引的数据表,当向数据表中添加记录或修改原有记录时,系统将检查添加的记录或修改后的记录是否满足惟一性的要求,如果不满足将不会被接受。,5.2

4、创建索引,索引可以由系统自动创建,也可以由用户手工创建。手工创建索引常用以下几种方法。 (1)利用企业管理器直接创建索引。 (2)利用Transact-SQL语句中的CREATE INDEX命令创建索引。 (3)利用企业管理器中的索引向导创建索引。,5.2.1 系统自动创建索引,系统在创建表中的其他对象时可以附带地创建新索引。例如,新建表时,可以创建主键或者惟一性约束,同时就创建了索引。,5.2.1 系统自动创建索引,例5-1 在BOOKS数据库中创建一个新的数据表“图书基本信息表5”,并将其中的“图书编码”字段设置为主键。,5.2.2 使用企业管理器创建索引,(1)在企业管理器中,展开指定的

5、服务器和数据库,选择要创建索引的表,并右击其中的某一个数据表,从弹出的快捷菜单中依次选择“所有任务”“管理索引”命令。,5.2.3 使用Transact-SQL语句创建索引,利用Transact-SQL语句中的CREATE INDEX命令可以创建索引,CREATE INDEX命令既可以创建一个可改变表的物理顺序的聚集索引,也可以创建提高查询性能的非聚集索引。,5.2.3 使用Transact-SQL语句创建索引,其语法形式如下: CREATE UNIQUE CLUSTERED | NONCLUSTERED INDEX index_name ON table | view ( column AS

6、C | DESC ,.n ),5.2.3 使用Transact-SQL语句创建索引,WITH PAD_INDEX ,FILLFACTOR=fillfactor ,IGNORE_DUP_KEY ,DROP_EXISTING ,STATISTICS_NORECOMPUTE ,SORT_IN_TEMPDB ON filegroup ,5.2.3 使用Transact-SQL语句创建索引,其中各参数的说明如下: UNIQUE:用于指定为表或视图创建惟一索引,即不允许存在索引值相同的两个数据行。在字段中包含重复值时,不能创建惟一索引。如要使用此选项,则应确定索引所包含的字段均不包含NULL值,否则在使用

7、时会经常出错。,5.2.3 使用Transact-SQL语句创建索引,CLUSTERED:用于指定创建的索引为聚集索引。如果此选项为默认,则创建的索引为非聚集索引。 NONCLUSTERED:用于指定创建的索引为非聚集索引。其索引数据页中包含了指向数据库中实际的表数据页的指针。,5.2.3 使用Transact-SQL语句创建索引,index_name:用于指定所创建的索引名称。索引名称在一个表或视图中必须惟一,但在数据库中不必惟一。索引名必须遵循SQL Server 2000中标识符的命名规则。 table:用于指定创建索引的表名称。必要时还可以选择指定的数据库名称和所有者名称。,5.2.3

8、 使用Transact-SQL语句创建索引,view:用于指定创建索引的视图名称。必须使用SCHEMABINDING选项定义视图才能在视图上创建索引。 ASC|DESC:用于指定某个具体索引列的升序或降序排序方法。默认值为升序(ASC)。,5.2.3 使用Transact-SQL语句创建索引,column:用于指定被索引的列。当指定两个或者多个列名组成一个索引时,可以为指定列的组合值创建组合索引,在 table 后的圆括号中列出组合索引中要包括的所有列(按排序优先级排列)。这种索引称为复合索引。一个索引中最多可以指定16个列,但列的数据类型的长度之和不能超过900个字节。,5.2.3 使用Tr

9、ansact-SQL语句创建索引,ON filegroup:用于指定存放索引的文件组。该文件组必须已经通过执行CREATE DATABASE或ALTER DATABASE创建。,5.2.3 使用Transact-SQL语句创建索引,例5-2 新建一个数据表,名称为“图书基本信息表6”。并为此表创建一个惟一聚集索引,索引字段为“图书编码”,索引名为“索引_图书编码”。,5.2.4 使用索引向导创建索引,在企业管理器中,展开指定的服务器和数据库项,选择要创建索引的表所在的数据库,选择工具菜单中的“向导”选项,会出现“选择向导”对话框,在此对话框中选择“创建索引向导”选项。,5.3 管理索引,5.3

10、.1 使用企业管理器管理索引 1使用企业管理器查看和修改索引 使用企业管理器可以查看和修改索引的详细信息,具体步骤如下。 在企业管理器中,展开指定的服务器和数据库项,右击表,从弹出的快捷菜单中依次选择“所有任务”“管理索引”命令。,2使用企业管理器更改索引名,要在企业管理器中修改索引的名称,则需要在表的“属性”对话框中进行。在企业管理器中,右击要修改名称的表,从弹出的快捷菜单中选择“设计表”命令,在打开的设计表的窗口中,单击工具栏中的“属性”按钮,打开表的“属性”对话框,选择“索引/键”选项卡。,3使用企业管理器删除索引,要删除索引,可以在“管理索引”对话框中或者在表的属性对话框中,选择要删除

11、的索引,单击“删除”按钮,即可删除索引。,5.3.2 使用系统存储过程管理索引,1使用系统存储过程查看索引信息 系统存储过程sp_helpindex可以返回表的所有索引信息,其语法形式如下; sp_helpindex objname=name 其中,objname=name参数用于指定当前数据库中的表名称。,5.3.2 使用系统存储过程管理索引,例5-3 使用系统存储过程查看“图书借阅信息表”的索引信息。,2使用系统存储过程更改索引名称,可以使用系统存储过程sp_rename更改索引的名称,其语法形式如下: sp_renameobjname=object_name, newname=new_n

12、ame , objtype = object_type ,2使用系统存储过程更改索引名称,例5-4 将“图书借阅信息表”中的索引“IX_借阅日期”的名称更改为“索引_借阅日期”。,5.3.3 使用Transact-SQL语句删除索引,当不再需要某个索引时,可以使用Transact-SQL语句中的DROP INDEX命令删除索引。DROP INDEX命令可以删除一个或者多个当前数据库中的索引,其语法形式如下: DROP INDEX table.index | view.index ,.n ,5.3.3 使用Transact-SQL语句删除索引,其中,table | view用于指定索引列所在的表

13、或索引视图;index用于指定要删除的索引名称。 说明:DROP INDEX命令不能删除由CREATE TABLE或者ALTER TABLE命令创建的主键或者惟一性约束索引,也不能删除系统表中的索引。,5.3.3 使用Transact-SQL语句删除索引,例5-5 删除“图书借阅信息表”中的索引“索引_借阅日期”。,5.4 本章小结,数据库中的索引是一个列表,在这个列表中包含了某个表中一列或者若干列值的集合,以及这些值的记录在数据表中的存储位置的物理地址。通过索引查找记录时,通过索引的有序排列,再根据索引项中记录的物理地址,快速定位到查询结果的存储位置。,5.4 本章小结,使用索引可以大大加快

14、数据检索速度,提高系统的性能,通过创建索引,还可以限制数据表中输入的数据值,使用索引还可以加速表与表之间的连接。 建立索引的一般原则有以下4点:对经常用来检索的字段建立索引;对数据表中的主键建立索引;对数据表中的外键建立索引;对经常用于连接的字段建立索引。,5.4 本章小结,按照存储结构的不同,索引可分为两大类,即聚集索引和非聚集索引。聚集索引对表中的数据按列进行排序,然后再重新存储到磁盘上。由于表中的数据行只能以一种排序方式存储在磁盘上,所以一个表只能有一个聚集索引。当用户需要建立多个索引时,就需要使用非聚集索引来完成。,5.4 本章小结,如果需要对多个字段的组合创建索引,则可以建立复合索引

15、。如果要求索引中的字段值不能重复,可以建立惟一索引。,5.4 本章小结,在SQL Server 2000中,索引既可以由系统自动创建,也可以由用户手工创建。系统在创建表中的其他对象时可以附带地创建新索引,例如新建表时,可以创建主键或者惟一性约束,同时就创建了索引。,5.4 本章小结,手工创建索引常用以下几种方法:利用企业管理器直接创建索引;利用Transact-SQL语句中的CREATE INDEX命令创建索引;利用企业管理器中的索引向导创建索引。 可以在企业管理器中查看索引信息,也可以修改索引名称或索引内容,还可以方便地删除索引。,5.4 本章小结,可以使用系统存储过程sp_helpinde

16、x返回表的所有索引信息。使用系统存储过程sp_rename更改索引的名称。使用Transact-SQL语句中的DROP INDEX命令可以删除索引。,5.5 思考与练习,1简述索引的概念及其作用。 2按照存储结构划分,索引分为哪两大类?各自的特点是什么? 3使用企业管理器创建一个新的索引,索引名称为“索引_出版单位and作者”,使用的数据表是“图书基本信息表”,所用的字段包括“出版单位”和“作者”两个字段。,5.5 思考与练习,4使用系统存储过程查看第3题中创建的索引信息。 5使用Transact-SQL语句创建一个新的索引,索引名称为“索引_所在部门and姓名”,使用的数据表是“读者基本信息表”,所用的字段包括“所在部门”和“姓名”两个字段。,5.5 思考与练习,6使用企业管理器查看第5题中创建的索引信息。 7使用企业管理器删除名称为“索引_出版

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号