第6讲 索引、约束与数据库其它对象
第6讲 索引、约束与数据库其它对象
●题 如何提高查询速度? 某些列如何保证没有重复值或满足一定条件? 如何保证数据的参照完整性? 概念: 9索引是一个表中所包含的值以及相应 索 的存储位置的列表 引 分类 9聚集索引 9非聚集索引 9复合索引 9唯一索引
索 引 问题 如何提高查询速度? 某些列如何保证没有重复值或满足一定条件? 如何保证数据的参照完整性? 概念: 索引是一个表中所包含的值以及相应 的存储位置的列表 分类: 聚集索引 非聚集索引 复合索引 唯一索引
●在那些经常被用来查询的列上 建立索引,以提高查找效率 (例子】在 Student表中可以分别建 何时使用索 立基于学号、姓名的索引 索引将占用磁盘空间。并且降 低添加、删除和更新行的速度 所以要慎用
何 时 使 用 索 引 在那些经常被用来查询的列上 建立索引,以提高查找效率 【例子】在Student表中可以分别建 立基于学号、姓名的索引 索引将占用磁盘空间,并且降 低添加、删除和更新行的速度, 所以要慎用!
●使用企业管理器 问题】在 Studen表上创建基于 StuName列,名为 IX StuName的 创 非聚集、非唯一索引 建索 9注意:创建主键约束何噍一约束 时,会自动在这些列上创建唯 引 索引
创 建 索 引 使用企业管理器 【问题】在Student表上创建基于 StuName列,名为IX_StuName的 非聚集、非唯一索引 注意:创建主键约束何唯一约束 时,会自动在这些列上创建唯一 索引
e使用SQL语句 创 问题】在表 course中的课程名称列 上建立唯一索引 建索引⌒续 (练习】使用SQL语旬在 Stucou表上 创建名为 IX StuNocouno的聚集, 唯一、复合索引.该索引基于 Stun列和 CouN列创建
创 建 索 引 ( 续 ) 使用SQL语句 【问题】在表course中的课程名称列 上建立唯一索引 【练习】使用SQL语句在StuCou表上 创建名为IX_StuNoCouNo的聚集、 唯一、复合索引,该索引基于 StuNo列和CouNo列创建
在(字段1,字段2)上创建的 复合索引和在(字段2,字段1) 复 上创建的复合索引是不同的 合 查找数据时,只有在 where子句 索 中指定了索引的第一个字段时 引 才使用该复合索引 说●复合索引中字段的顺序很重要 明 在次序上首先定义最具唯一性 的字段列
复 合 索 引 说 明 在(字段1,字段2)上创建的 复合索引和在(字段2,字段1) 上创建的复合索引是不同的 查找数据时,只有在where子句 中指定了索引的第一个字段时 才使用该复合索引 复合索引中字段的顺序很重要: 在次序上首先定义最具唯一性 的字段列
●使用企业管理器 使用SOL语句 格式: 删除索 DROP INDEX table name index name 问题】删除 Stucou表中的 IX StuNocouno索引 引 思考: studen表中的索引 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 索引分析 例:在 stucou的 counc上建索引,然 后执行一个查询,并分析索引
索 引 分 析 索引分析 显示在查询时索引使用情况: set showplan_all on|off 例:在stucou的couno上建索引,然 后执行一个查询,并分析索引
约束的作用:保证了数据的完整 性 9提问:数据完整性有几类? ●约束的种类 约束概述 9课本P166
约 束 概 述 约束的作用:保证了数据的完整 性 提问:数据完整性有几类? 约束的种类: 课本P166