文档详情

《SQL Server数据库应用》课件 项目六 管理索引和视图.pptx

发布:2025-04-17约3.66千字共34页下载文档
文本预览下载声明

项目六

管理索引和视图;246;创建索引;;为了提升查询的速度与效率,要在经常查询的表的相应字段上创建索引。根据数据库ssts中的数据表classThree,表中包含学号、姓名、性别、身份证号码、出生日期、手机等字段,可以使用SSMS方式,在classThree表的“身份证号码”列上创建聚集索引idx_idcard,可以使用T-SQL语句方式在classThree表的“姓名”列上创建非聚集索引idx_name。创建索引的结果如图所示。;一、索引的概念

索引是根据表中一列或多列的值按照一定顺序建立的列值与记录之间的对应关系,是以表列为基础建立的数据库对象。索引可以提高检索数据行的速度,当查阅图书的某一章节内容时,为了方便查找,可以选择目录索引,快速找到页码。在学生成绩数据库中,为加快查询速度,要给经常使用的表创建索引,并设置相关属性。

因为索引在搜索数据上所花的时间比在表中逐行搜索花的时间更长,若列中有几个不同的值,或表中仅包含几行值,则不推荐为其创建索引。;二、索引的类型

1.?唯一索引

唯一索引不允许两行具有相同的索引值,也就是说,对于表中的任何两行记录来说,索引键的值都各不相同。如果创建了唯一约束,那么将自动创建唯一索引。

2.?主键索引

为表定义一个主键将自动创建主键索引,主键索引是唯一索引的特殊类型。主键索引要求主键中的每一个值都是唯一的,并且不能为空。;3.?聚集索引(clustered?index)

聚集索引是指表中各行的物理顺序与键值的逻辑顺序(索引顺序)相同的索引,每个表只能有一个聚集索引。聚集索引通常创建在表中经常被搜索到的列或按顺序访问的列上,在默认情况下,主键约束自动创建聚集索引。

4.?非聚集索引(non-clustered?index)

非聚集索引是指表中各行的物理顺序与索引顺序不相同的索引。数据存储在一个位置,索引存储在另一个位置,索引中包含指向数据存储位置的指针。;三、创建索引

使用T-SQL语句创建索引的简单语法如下。

其中,UNIQUE表示唯一索引,CLUSTERED表示聚集索引,NONCLUSTERED表示非聚集索引,FILLFACTOR表示填充因子,指定一个0到100之间的值,该值指示索引页填满的空间所占的百分比,该值是可选的。

使用CREATEINDEX方法可以指定索引的类型、唯一性等,可以创建聚集索引,也可以创建非聚集索引,既可以在一个列上创建索引,又可以在两个或多个列上创建索引。;四、查看索引

在SSMS中查看索引,在对象资源管理器窗口中,依次展开数据库ssts,展开表节点classThree,展开索引节点,右击需要查看索引信息的索引名称,如idx_mobilephone,在弹出的快捷菜单中选择“属性”选项,如图所示。;在弹出的“索引属性”对话框中,可以查看当前索引idx_mobilephone的详细信息,如图所示。;也可以展开“统计信息”节点,双击所要查看统计信息的索引idx_mobilephone,查看索引idx_mobilephone的统计信息属性,如图所示。

在上面的“统计信息属性”对话框中,在“选择页”中选择“详细信息”选项,显示当前索引的统计信息,可以查看索引idx_mobilephone的统计信息。;管理索引;;根据数据库ssts中的数据表classThree,该表中包含学号、姓名、性别、身份证号码、出生日期、手机等字段,要求使用T-SQL语句在classThree表中的“手机”列上创建唯一的非聚集索引idx_mobilephone,要求使用存储过程查看classThree表上的所有索引,要求使用T-SQL语句修改idx_mobilephone索引名为idx_phone,重建idx_phone索引,最后删除idx_phone索引。;一、修改索引

1.?重命名索引

重命名索引的语法格式如下。

其中,oldIndexName是原索引名称,newIndexName是新索引名称。sp_renameoldName和newName[,object_type]必须在索引前面加上表名前缀。;2.重新生成索引

重新生成索引的语法格式如下。

3.?禁用索引

禁用索引的语法格式如下。;二、删除索引

使用T-SQL语句中的DROPINDEX命令可以删除表中的索引,其语法格式如下。

在删除索引时,要注意不能使用DROPINDEX语句删除由主键约束或唯一性约束创建的索引。要想删除这些索引,必须先删除这些约束。当删除表时,该表的全部索引也将被删除。当删除一个聚集索引时,该表的全部非聚集索引重新自动创建。;管理视图;;现要求附加上已有的数据库ssts,在数

显示全部
相似文档