什么是聚集索引,什么是非聚集索引,什么又是主键?
索引实际上是一组指向表中数据的指针,索引的排列顺序其实就是这组指针的顺序.
聚集索引:表的物理存储顺序与指针(即逻辑)顺序相同
非聚集索引:物理与逻辑顺序不同
因为一个表只能有一个物理顺序,所以,聚集索引的个数最多只能是1.
其中唯一索引是给所做的索引增加了唯一性的约束,添加,修改索引列中数据时,不允许出现重复值.它可以是聚集索引,也可以是非聚集的,就看你如何定义
主键索引是把主键列定义为索引,主键具有唯一性,所以主键索引是唯一索引的一种特殊形式
如何设置聚集索引(Cluster Index)?
一、使用SQLServerManagementStudio
使用对象资源管理器创建聚集索引
在“对象资源管理器”中,展开要创建聚集索引的表。
右键单击“索引”文件夹,指向“新建索引”,然后选择“聚集索引…”。
在“新建索引”对话框的“常规”页中,在“索引名称”框中输入新索引的名称。
在“索引键列”下,单击“添加…”。
在“从table_name中选择列”对话框中,选中要添加到聚集索引的表列的复选框。
单击“确定”。
图片来源:网络
在“新建列”对话框中,单击“确定”。
使用表设计器创建聚集索引
在“对象资源管理器”中,展开要使用聚集索引创建表的数据库。
右键单击“表”文件夹,然后单击“新建表…”。
右键单击上面创建的新表,然后单击“设计”。
在“表设计器”菜单上,单击“索引/键”。
在“索引/键”对话框中,单击“添加”。
从“选定的主/唯一键或索引”文本框中选择新索引。
在网格中,选择“创建为聚集的”,然后从该属性右侧的下拉列表中选择“是”。
单击“关闭”。
在“文件”菜单上,单击“保存table_name”。
二、使用Transact-SQL
创建聚集索引
在“对象资源管理器”中,连接到数据库引擎的实例。
在标准菜单栏上,单击“新建查询”。
将以下示例复制并粘贴到查询窗口中,然后单击“执行”。
USEyourdatabase;
GO
CREATETABLEdbo.TestTable
(TestCol1intNOTNULL,
TestCol2nchar(10)NULL,
TestCol3nvarchar(50)NULL);
GO
--CreateaclusteredindexcalledIX_TestTable_TestCol1
--onthedbo.TestTabletableusingtheTestCol1column.
CREATECLUSTEREDINDEXIX_TestTable_TestCol1
ONdbo.TestTable(TestCol1);
GO