首页 理论教育 SQLServer数据库创建索引

SQLServer数据库创建索引

时间:2023-10-21 理论教育 版权反馈
【摘要】:在创建PRIMARY KEY约束时,如果不存在该表的聚集索引且未指定唯一非聚集索引,则将自动对一列或多列创建唯一聚集索引,主键列不允许空值。在创建UNIQUE约束时,默认情况下将创建唯一非聚集索引,以便强制UNIQUE约束。每个表可以创建的非聚集索引最多为249个。6)如果不需要创建其他索引,单击“确定”按钮,完成索引的创建。

SQLServer数据库创建索引

在创建PRIMARY KEY约束时,如果不存在该表的聚集索引且未指定唯一非聚集索引,则将自动对一列或多列创建唯一聚集索引,主键列不允许空值。

在创建UNIQUE约束时,默认情况下将创建唯一非聚集索引,以便强制UNIQUE约束。如果不存在该表的聚集索引,则可以指定唯一聚集索引。将索引创建为约束的一部分后,会自动将索引命名为与约束名称相同的名称。

除了在创建约束时创建索引外,还可以创建独立于约束的索引。默认情况下,如果未指定聚集,将创建非聚集索引。每个表可以创建的非聚集索引最多为249个。

可以使用对象资源管理器创建索引,也可以使用SQL语句创建索引。

1.使用对象资源管理器创建索引

【例4-39】 使用对象资源管理器为“学生”表的姓名字段创建非聚集索引。

1)在“对象资源管理器”窗格中,选择要建立索引的“学生”表,展开“学生”结点,单击“索引”结点,在右侧的“索引”窗格中显示了当前表中已有的索引,包括索引名(PK_Xs)和索引类型(聚集索引)。

2)如图4-40所示,右击“索引”结点,在弹出的菜单中选择“新建索引”命令,则打开“新建索引”窗口。

978-7-111-33494-1-Chapter04-85.jpg

图4-40 “新建索引”命令

3)如图4-41所示,在“索引名称”中输入新建索引的名称为“Xm_index”,设置索引属性为“非聚集”,不勾选“唯一”前的复选框

4)单击“添加”按钮打开如图4-42所示的窗口,在列表中选择用于创建索引的列(可以是一列或多列),这里选择“Xm”列,即勾选“Xm”列左边的复选框。

978-7-111-33494-1-Chapter04-86.jpg

图4-41 “新建索引”窗口

978-7-111-33494-1-Chapter04-87.jpg

图4-42 “选择索引列”窗口

5)完成索引选项设置后,单击“确定”按钮,关闭“从dbo.Xs中选择列”窗口,回到“新建索引”窗口。(www.xing528.com)

6)如果不需要创建其他索引,单击“确定”按钮,完成索引的创建。

2.使用T-SQL语句创建索引

使用T-SQL语言创建索引的命令是“CREATE INDEX”,其基本语法格式如下。

978-7-111-33494-1-Chapter04-88.jpg

在上述数据参数中:

●[UNIQUE][CLUSTERED|NONCLUSTERED]:用来指定创建的索引类型,依次为唯

一索引、聚集索引和非聚集索引。当省略UNIQUE选项时,建立的是非唯一索引,省略CLUSTERED|NONCLUSTERED选项时,建立的是非聚集索引。

●index_name:创建的索引名称。

●table_or_view_name:指定要创建索引的表或视图的名称。

●Column:指定索引列的名称。

●ASC|DESC:指定索引列的排序方式,ASC是升序,DESC是降序。如果缺省则按升序排序。

●ON filegroup_name:为指定文件组创建指定索引。如果未指定位置且表或视图尚未分区,则索引将与基础表或视图使用相同的文件组。

●ON default:为默认文件组创建指定索引。

【例4-40】 使用SQL语句为“教师”表基于“姓名”列创建唯一非聚集索引Xm_in-dex,升序排列。

代码如下。

978-7-111-33494-1-Chapter04-89.jpg

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈