
第6讲 索引、约束与数据库其它对象
第6讲 索引、约束与数据库其它对象

。问题 如何提高查询速度? 某些列如何保证没有重复值或满足一定条件? 如何保证数据的参照完整性? 意概念: 就索引是一个表中所包含的值以及相应 索 的存储位置的列表 。分类: 就聚集索引 粥非聚集索引 复合索引 跳唯一索引
索 引 问题 如何提高查询速度? 某些列如何保证没有重复值或满足一定条件? 如何保证数据的参照完整性? 概念: 索引是一个表中所包含的值以及相应 的存储位置的列表 分类: 聚集索引 非聚集索引 复合索引 唯一索引

。在那些经常被用来查询的列上 建立索引,以提高查找效率 【例子】在Student表中可以分别建 何时使用索引 立基于学号、姓名的索引 。索引将占用兹盘空间,并且降 低添加、删除和更新行的速度, 所以要慎用!
何 时 使 用 索 引 在那些经常被用来查询的列上 建立索引,以提高查找效率 【例子】在Student表中可以分别建 立基于学号、姓名的索引 索引将占用磁盘空间,并且降 低添加、删除和更新行的速度, 所以要慎用!

。使用企业管理器 【问题】在Student.表上创建基于 StuName.列,名为IX StuNamer的 非聚集、非唯一索引 创建索引 粥注意:创建主键约束何唯一约束 时,会自动在这些列上剑建唯一 索引
创 建 索 引 使用企业管理器 【问题】在Student表上创建基于 StuName列,名为IX_StuName的 非聚集、非唯一索引 注意:创建主键约束何唯一约束 时,会自动在这些列上创建唯一 索引

。使用SQL语句 【问题】在表C0urSe中的课程名称列 上建立唯一索引 索 【练习】使用SQL语句在StuCou表上 创建名为IX StuNoCouNor的聚集、 唯一、复合索引,该索引基于 StuNo列和CouNo列创建 续
创 建 索 引 ( 续 ) 使用SQL语句 【问题】在表course中的课程名称列 上建立唯一索引 【练习】使用SQL语句在StuCou表上 创建名为IX_StuNoCouNo的聚集、 唯一、复合索引,该索引基于 StuNo列和CouNo列创建

。在(字段1,字段2)上创建的 复合索引和在(字段2,字段1) 上剑建的复合索引是不同的 复合索引说 。查找数据时,只有在where子句 中指定了索引的第一个字段时 才使用该复合索引 。复合索引中字段的顺序很重要: 在次序上首先定义最具唯一性 的字段列 0
复 合 索 引 说 明 在(字段1,字段2)上创建的 复合索引和在(字段2,字段1) 上创建的复合索引是不同的 查找数据时,只有在where子句 中指定了索引的第一个字段时 才使用该复合索引 复合索引中字段的顺序很重要: 在次序上首先定义最具唯一性 的字段列

。使用企业管理器 。使用SQL语句 格式: DROP INDEX table name.index name 删除索引 【问题】删除StuCou.表中的 IX StuNoCouNo索引 思考:student.表中的索引 PK Student可以删除吗?
删 除 索 引 使用企业管理器 使用SQL语句 格式: DROP INDEX table_name.index_name 【问题】删除StuCou表中的 IX_StuNoCouNo索引 思考:student表中的索引 PK_Student可以删除吗?

。显示索引信息 sp_helpindex table name 。重命名索引 管 sp rename table name.old index name, 寄 new index name 。使用企业管理器
管 理 索 引 显示索引信息 sp_helpindex table_name 重命名索引 sp_rename table_name.old_index_name, new_index_name 使用企业管理器

。索引分析 显示在查询时索引使用情况: set showplan all on off 索引分析 例:在stucour的couno.上建索引,然 后执行一个查询,并分析索引
索 引 分 析 索引分析 显示在查询时索引使用情况: set showplan_all on|off 例:在stucou的couno上建索引,然 后执行一个查询,并分析索引

约束的作用:保证了数据的完整 性 提问:数据完整性有几类? 。约束的种类: 约束概述 课本P166
约 束 概 述 约束的作用:保证了数据的完整 性 提问:数据完整性有几类? 约束的种类: 课本P166