SQL Server数据库及应用-第07章 索引的创建与使用

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

7.2.2 使用T-SQL语句创建索引
例7-5:在AWLT数据库中,使用CREATE
INDEX语句为表Product创建一个名为 IX_Product_Name的非聚集索引,索引字段 为Name。 例7-6:在AWLT数据库中,使用CREATE INDEX语句为表Product创建一个名为 IX_Product_SellStartDate_Color的复合索 引,索引字段为SellStartDate字段和Color 字段,按SellStartDate字段降序,Color字 段升序。
查看索引的方法
使用SSMS 使用系统存储过程sp_helpindex
7.6 本章小结
删除索引的方法
使用SSMS
使用T-SQL中的DROP INDEX语句
习题七
一、填空题 1.使用索引可以大大加快
速度。 2. 在SQL Server中,通常不需要用户建立索 引,而是通过使用________约束和 ________约束,由系统自动建立索引。 3.按照存储结构的不同,索引分为 和 。 4.索引可以提高SELECT语句中ORDER BY子句和 子句的执行速度。
7.2.2 使用T-SQL语句创建索引
其中,各参数的说明如下: UNIQUE:指定为表或视图创建唯一索引。 CLUSTERED:指定创建的索引为聚集索引。 NONCLUSTERED:指定创建的索引为非聚集索引。 index_name:指定所创建的索引名称。 table:指定创建索引的表名称。 view:指定创建索引的视图名称。 ASC|DESC:指定某个具体索引列的升序或降序排 序方向。默认值为升序(ASC)。 Column:指定索引所基于的一列或多列。
序建立的列值与记录行之间的对应关系表。 使用所以可以在表中快速地查找到数据。 在SQL Server 2008中提供的索引类型主要 有:聚集索引、非聚集索引、唯一索引、包 含性列索引、索引视图、全文索引、筛选索 引以及XML索引。其中最常用的是聚集索引、 非聚集索引和唯一索引。
7.6 本章小结
7.2.1 使用SSMS创建索引
方法一:
(1)在SSMS中,展开指定的服务器和数据库,展 开要创建索引的表,并右击其中的“索引”文件夹,
从弹出的快捷菜单中选择“新建索引”选项。 (2)在打开的“新建索引”对话框中,输入索引 名为,在索引类型旁边的下拉列表框中选择索引类 型,并单击“添加”按钮,打开“选择列”对话框, 在其中选中相应字段前面的复选框。如果是复合索 引,可以在“选择列”对话框中同时勾选多个字段 前面的复选框。
3.唯一索引
如果要求索引中的字段值不能重复,可以建
立唯一索引。 索引也可以不是唯一的,即多个行可以共享 同一键值。如果索引是根据多列组合创建的, 这样的索引称为复合索引。 聚集索引和非聚集索引都可以是唯一索引。
7.1.3 索引的分类
4.几种特殊类型的索引
(1)XML索引 XML索引必须创建在表的XML列上,先创建一个 XML主索引,然后才能创建多个辅助XML索引。 (2)筛选索引 筛选索引是一种经过优化的非聚集索引,适用于从 表中选择少数行的查询。
7.2.1 使用SSMS创建索引
方法二:
进入表结构的设计窗口,在窗口中右击鼠标,
从快捷菜单中选择“索引/键”,会打开“索 引/键”对话框。可以添加新索引或删除已有 的索引。
7.2.1 使用SSMS创建索引
例7-3:在AWLT数据库中,为表Customer
创建一个唯一、非聚集索引 IX_Customer_EmaiAddress,索引字段为 EmaiAddress。 例7-4:在AWLT数据库中,为表Customer 创建一个唯一、非聚集索引 IX_Customer_Name,索引字段为Name。
7.4.1 使用SSMS修改索引
在SSMS中,进入表结构的设计窗口,在窗
口中右击鼠标,从快捷菜单中选择“索引/ 键”,在“索引/键”对话框中,可以看到已 经创建的索引,在“选定的主/唯一键或索引” 中选择要修改的索引的名称,在右侧就可以 修改选中的索引的信息。
7.4.2 使用T-SQL语句修改索引
7.2.2 使用T-SQL语句创建索引
使用 TSQL中的 CREATE INDEX 语句可以创




建索引: CREATE [ UNIQUE ] [CLUSTERED| NONCLUSTERED ] INDEX index_name ON table | view (column [ ASC|DESC ] [ ,...n ] )
习题七
二、选择题 3.下面关于聚集索引和非聚集索引说法正确的是 ( )。 A.每个表只能建立一个聚集索引 B.非聚集索引需要较多的硬盘空间和内存 C.一张表上不能同时建立聚集索引和非聚集索引
D.一个复合索引只能是聚集索引
习题七
三、简答题 1.使用索引有哪些优点? 2.聚集索引和非聚集索引各有什么特点?
(3)空间索引
空间索引定义在一个包含地理数据的表列上。
7.2 创建索引
在SQL Server 2009中,创建索引的常用方
法有以下几种:
由系统自动创建
使用SSMS创建
使用T-SQL语句创建
7.2 创建索引
系统在创建表中的其他对象时可以附带地创
建新索引,例如新建表时,如果创建主键或 者唯一性约束,系统会自动创建相应的索引。 例7-1:在AWLT数据库中创建一个新表 ProductCategory1,并将其中的Name字段 设置为聚集的唯一性约束。 例7-2:在AWLT数据库中创建一个新表 Address1,并将其中的AddressID字段设置 为主键。
7.1.2 索引的优点
使用索引可以大大提高系统的性能,其具体
表现在:
加快数据检索速度。
可以保证数据记录的唯一性。
在使用ORDER BY和GROUP BY子句进行检索 数据时,可以显著减少查询中分组和排序的时间。
可以在查询的过程中使用优化隐藏器提高系统性 能。
可以加速表与表之间的连接。
第7章 索引的创建与使用
本章学习目标
理解索引的概念
了解索引的优点 掌握索引的分类
熟练掌握创建、修改和删除索引的方法
7.1 概述
7.1.1 索引的概念
索引是根据表中一列或若干列,按照一定顺
序建立的列值与记录行之间的对应关系表。 在列上创建了索引之后,查找数据时可以直 接根据该列上的索引找到对应行的位置,从 而快速地查找到数据。 SQL Server将索引组织为B树。每个索引行 都包含一个键值以及一个指向较低级页或数 据行的指针。
使用T-SQL中的ALTER INDEX语句可以修改
索引。该语句不能用于修改索引定义,如添 加或删除列,或更改列的顺序。 如果需要修改索引的组成,要么删除索引后 重新创建索引,要么使用带 DROP_EXISTING=ON选项的索引。
7.5 删除索引
使用索引可以提高查询效率,但是如果一个
习题七
二、选择题 1.“CREATE UNIQUE INDEX AAA ON 学生表 (学号)”将在学生表上创建名为AAA的( )。 A.唯一索引


B.聚集索引 C.复合索引 D.唯一聚集索引 2.下面对索引的相关描述正确的是( )。 A.经常被查询的列不适合建索引 B.列值唯一的列适合建索引 C.有很多重复值的列适合建索引 D.是外键或主键的列不适合建索引
可以使用DROP INDEX语句删除一个或者多
个当前数据库中的索引: DROP INDEX table_name.index_name |view_name.index_name[,...n] 其中,table | view用于指定索引列所在的表 或索引视图;index用于指定要删除的索引名 称。
7.5.1 使用SSMS删除索引
方法二:
进入表结构的设计窗口,在窗口中右击鼠标,
从快捷菜单中选择“索引/键”,在“索引/键” 对话框中,可以看到已经创建的索引,在 “选定的主/唯一键或索引”中选择要删除的 索引的名称,单击“删除”按钮,即可删除 选中的索引。
7.5.2 使用T-SQL语句删除索引
聚集索引是指表中数据行的物理存储顺序与
索引列顺序完全相同。每个表只能创建一个 聚集索引。 非聚集索引不改变表中数据行的物理存储位 置,数据与索引分开存储,通过索引带有的 指针与表中的数据发生联系。 当唯一性是数据本身应考虑的特点时,可创 建唯一索引。
7.6 本章小结
创建索引的方法
系统在创建表中的主键或者唯一性约束时可以 附带地创建新索引 使用SSMS 使用T-SQL中的CREATE INDEX语句
系统存储过程sp_helpindex可以返回表的所
有索引信息,其语法格式如下: sp_helpindex [@objname=]’name’
例7-7:使用系统存储过程查看Customer表
的索引信息。
7.4 修改索引
在对表创建了索引之后,可以根据实际需要
修改已有的索引,修改索引的常用方法主要 有两种: 使用SSMS 使用T-SQL语句
7.1.3 索引的分类
2.非聚集索引
非聚集索引不改变表中数据行的物理存储位
置,数据与索引分开存储,通过索引带有的 指针与表中的数据发生联系。 一个表中可有一个或多个非聚集索引。 一个表中既要创建聚集索引,又要创建非聚 集索引时,应先创建聚集索引,然后再创建 非聚集索引。
7.1.3Βιβλιοθήκη Baidu索引的分类
表上索引过多,则当修改表中的记录时会增 加服务器维护索引的时间。 删除索引常用的操作方法有两种:
使用SSMS 使用T-SQL语句
7.5.1 使用SSMS删除索引
方法一:
在SSMS中,展开指定的服务器、数据库、
查看索引所在的表和要查看的索引,并右击 需要删除的索引名称,从弹出的快捷菜单中 选择“删除”命令,在“删除对象”对话框 中单击“确定”按钮,即可删除选定的索引。
7.3 查看索引
7.3.1 使用SSMS查看索引
方法一:
(1)在SSMS中,展开指定的服务器、数据
库和创建索引的表,并单击其中的“索引”, 可以显示出该表上的所有索引。 (2)要想查看某个索引的详细信息,在“索 引属性”对话框中可以查看索引的详细信息。 (3)在 “对象依赖关系”对话框中可以查 看该索引依赖的对象和依赖于该索引的对象。
7.1.3 索引的分类
在SQL Server 2008中提供的索引类型
主要有以下几类:
聚集索引
非聚集索引
唯一索引 包含性列索引 索引视图 全文索引
XML索引
7.1.3 索引的分类
1.聚集索引 聚集索引是指表中数据行的物理存储顺序与索引列 顺序完全相同。 聚集索引由上下两层结构组成,上层为索引页,用 于数据检索;下层为数据页,存放着表中的数据。 当为一个表的某列创建聚集索引时,表中的数据会 根据索引列的顺序再进行重新排序,然后再存储到 磁盘上。因此,每个表只能创建一个聚集索引。 聚集索引一般创建于表中经常检索的列或者按顺序 访问的列上。
7.3.1 使用SSMS查看索引
方法二:
进入表结构设计窗口,在窗口中右击鼠标,
从快捷菜单中选择“索引/键”,在“索引/键” 对话框中,可以看到已经创建的索引,在 “选定的主/唯一键或索引”中选择要查看的 索引的名称,在右侧就可以看到选中的索引 的详细信息。
7.3.2 使用系统存储过程查看索引信息
7.5.2 使用T-SQL语句删除索引
注 意 : DROP INDEX 命 令 不 能 删 除 由
CREATE TABLE或者ALTER TABLE语句创 建的主键或者唯一性约束索引。 例7-8:删除表Customer中的名为 IX_Customer_Name的索引。
本章小结
索引是根据表中一列或若干列,按照一定顺
3.使用T-SQL语句创建索引的语句是什么?
习题七
四、应用题 1.为表ProductCategory创建一个唯一的非
相关文档
最新文档