3.6.2 创建索引

3.6.2 创建索引

SQL Server提供了两种方式创建索引,一种方式是通过SQL Server Management Studio创建索引,另一种方式是使用CREATE INDEX创建索引。

(1)使用SQL Server Management Studio创建索引

启动SQL Server Management Studio。

在左边的“对象资源管理器”窗口中展开“数据库”→“表”节点,选择要创建索引的表,例如Student表。

在Student表上单击鼠标右键,在出现的快捷菜单中选择“设计”命令,右边窗格中出现“表设计器”对话框,如图3-29所示。

图3-29 “表设计器”对话框

在“表设计器”对话框中,选择要建立索引的属性列,单击鼠标右键,在弹出的快捷菜单中选择“索引/键”命令,出现“索引/键”对话框,如图3-30所示。

图3-30 “索引/键”对话框

在“索引/键”对话框中,单击“添加”按钮,增加一个唯一性索引。选中新建的索引名称,单击“索引/键”对话框右边的“列”按钮,在弹出的“索引列对话框”中选择要建立索引的列以及排序方式(升序ASC或降序DESC),如图3-31所示。

图3-31 索引列的选择

最后,将图3-30中的“索引/键”对话框右边的“是唯一的”,改为“是”。单击“关闭”按钮,即可完成唯一性索引的创建。

刷新数据库,可以在“对象资源管理器”中看到用户刚刚创建的索引。

(2)使用CREATE INDEX语句创建索引

其基本格式如下:

其中,

说明:

UNIQUE:为表或视图创建唯一索引;

CLUSTERED:为表或视图创建聚集索引,若省略CLUSTERED则表示默认创建的索引为非聚集索引;

NONCLUSTERED:创建非聚集索引。对于非聚集索引,数据行的物理排序独立于索引排序;

index_name:索引的名称,在表或视图中必须唯一,但在数据库中可以不唯一。索引名称必须符合标识符的规则;

database_name:数据库的名称;

schema_name:表或视图所属架构的名称;

table_or_view_name:要创建索引的基本表或视图的名称;

column:索引可以建立在一个属性列上或多个属性列上,指定两个或多个列名时,可为指定列的组合值创建组合索引,各列名之间用逗号分隔;

ASC|DESC:指定索引列的升序或降序排序方式,默认值为ASC。

注意:索引一旦创建,将由DBMS自动管理和维护,无须用户干预;当插入、删除、修改记录时,DBMS会自动更新表中的索引。

【例3.74】 为学生选课表SC建立名为Index1的索引,按学号升序和课程号降序建立唯一索引。

CREATE UNIQUE INDEX Index1 on SC(Sno ASC,Cno DESC);

【例3.75】 为学生表Student按Sname升序创建名为Index2的聚集索引。

CREATE CLUSTERED INDEX Index2 ON Student(Sname);

注意:一个表最多只能创建一个聚集索引。如果Student表中已经创建了聚集索引的话,上述语句将不能正确执行。