文档详情

SQL Server 数据库教程 2008版 教学课件 郑阿奇 刘启芬 顾韵华 第6章 索引与数据完整性.pdf

发布:2015-11-12约1.15万字共36页下载文档
文本预览下载声明
第6章索引与数据完整性 6.1  索引 6.2  数据完整性 6.1  索引 6.1.1  索引的分类 1.聚集索引 聚集索引将数据行的键值在表内排序并存储对应的数据记录,使得数据表物理 顺序与索引顺序一致。 2.非聚集索引 非聚集索引完全独立于数据行的结构。SQL Server 2008也是按B树方式组织非 聚集索引的,与聚集索引的不同之处在于:非聚集索引B树的叶节点不存放数据页 信息,而是存放非聚集索引的键值,并且每个键值项都有指针指向包含该键值的数 据行。 6.1.2  索引的创建 1.界面方式创建索引 6.1.2  索引的创建 在“表设计器”窗口创建索引的方法如下。 6.1.2  索引的创建 2.利用SQL命令建立索引 使用CREATE INDEX语句可以为表创建索引。语法格式: CREATE [ UNIQUE ]  /*指定索引是否唯一*/ [ CLUSTERED | NONCLUSTERED ]  /*索引的组织方式*/ INDEX index_name  /*索引名称*/ ON {[ database_name. [ schema_name ] . |  schema_name. ] table_or_view_name} ( column [ ASC | DESC ] [ ,...n ] )  /*索引定义的依据*/ [ ON {   partition_scheme_name ( column_name )  /*指定分区方案*/ | filegroup_name  /*指定索引文件所在的文件组*/ | default  } ] [ ; ] 6.1.2  索引的创建 【例6.1 】为KCB表的“课程名”列创建索引。 USE PXSCJ GO CREATE INDEX  kc_name_ind  ON KCB(课程名) 【例6.2 】根据KCB表的“课程号”列创建唯一聚集索引,因为指定了 CLUSTERED,所以该索引将对磁盘上的数据进行物理排序。 CREATE UNIQUE CLUSTERED INDEX kc_id_ind  ON  KCB (课程号) 6.1.2  索引的创建 【例6.3 】根据CJB表的“学号”列和“课程号”列创建复合索引。 CREATE INDEX CJB_ind ON CJB(学号, 课程号) WITH(DROP_EXISTING= ON) 【例6.4 】根据XSB表中的“总学分”列创建索引,例中使用了FILLFACTOR子 句。 CREATE NONCLUSTERED INDEX score_ind  ON XSB(总学分) WITH FILLFACTOR = 60 【例6.5 】根据XSB表中“学号”列创建唯一聚集索引。如果输入了重复的键, 将忽略该INSERT或UPDATE语句。 CREATE UNIQUE CLUSTERED INDEX xs_ind  ON XSB(学号) WITH IGNORE_DUP_KEY 6.1.3  重建索引 语法格式: ALTER INDEX { index_name | ALL } ON [ database_name. [ schema_name ] . | schema_name. ]table_or_view_name {  REBUILD  | DISABLE } [ ; ] 例如,重建KCB表上的所有索引: USE PXSCJ GO ALTER INDEX ALL ON KCB REBUILD 重建KCB表上的kc_name_id索引: ALTER 
显示全部
相似文档