1
数据库技术及应用
1.10.2.3 7.2.3 Transact-SQL创建索引
7.2.3 Transact-SQL创建索引

1.选择创建索引的列

如果在一个列上创建索引,该列就称为索引列。通常使用的索引列有如下这些:

●表的主键列。

●连接中频繁使用的列。

●在某一范围内频繁搜索的列和按排列顺序频繁检索的列。

建立索引需要产生一定的存储开销,在进行插入和更新数据的操作时,维护索引也要花费时间和空间,因此没有必要对表中的所有列都建立索引。一般来讲,下面这些列不考虑建立索引:

●很少被查询的列。

●只有几个值的列,如“性别”只有两个值,“男”和“女”。

●以bit、text、image数据类型定义的列。

另外,数据行数很少的小表一般也没有必要建立索引。

2.语法格式

参数说明如下:

●UNIQUE:为表或视图创建唯一索引。唯一索引不允许两行具有相同的索引键值。视图的聚集索引必须唯一。

●CLUSTERED:表示创建聚集索引。创建索引时,键值的逻辑顺序决定表中对应行的物理顺序。聚集索引的底层(或称叶级别)包含该表的实际数据行。一个表或视图只允许同时有一个聚集索引。具有唯一聚集索引的视图称为索引视图。

●NONCLUSTERED:表示创建的索引为聚集索引。

●ASC|DESC:指定索引值的排列顺序,ASC表示升序,DESC表示降序,默认值为ASC。

【例7-3】在Student_info表中学号列创建一个名为STU_INDEX的唯一聚集索引。代码如下:

实战演练——BBS数据库中索引的创建

在BBS数据库中完成以下索引的创建与删除操作:

(1)通过Management Studio为tb_Topic表的帖子标题列创建唯一非聚集索引。

(2)新建SQL查询,输入TransacT-SQL语句,为tb_Users表建立名为user_index的索引,该索引属性如图7-12所示。操作成功后,保存该查询,并把保存文件命名为user_index.sql。

图7-12 设置“索引/键”的属性

详细的操作步骤如下:

步骤1:为tb_Topic表的帖子标题列创建唯一非聚集索引。

(1)启动SQL Server Management Studio,在对象资源管理器中依次展开“数据库”节点、BBS节点和“表”节点,在dbo.tb_topic上单击鼠标右键,在弹出的快捷菜单上执行“设计”命令,进入表设计器界面。

(2)在表设计器界面上单击鼠标右键,在弹出的快捷菜单中执行“索引/键”命令。

(3)打开“索引/键”对话框,单击“添加”按钮,按相关要求进行索引的设置。

步骤2:为tb_Users表建立名为user_index的索引,T-SQL语句为:

步骤3:删除上一步所建立的索引,T-SQL语句为: