创建索引与约束.ppt

  1. 1、本文档共35页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 第5章 创建索引(idex)与约束(constraint) * 第5章 创建索引(idex)与约束(constraint) 5.1 索引 5.2 约束和默认 5.3 数据完整性 * 一、什么叫索引 数据库中的索引与书籍中的目录类似。 在数据库中,索引使数据库程序无须对整个表进行扫描,就可以在其中找到所需数据。 数据库中的索引是某个表中一列或者若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。 * 二、索引的作用 通过创建唯一索引,可以保证数据记录的唯一性。 可以大大加快数据检索速度。 可以加速表与表之间的连接,这一点在实现数据的参照完整性方面有特别的意义。 在使用ORDER BY和GROUP BY子句中进行检索数据时,可以显著减少查询中分组和排序的时间。 使用索引可以在检索数据的过程中使用优化器,提高系统性能。 * 三、聚集索引与非聚集索引 聚集索引(簇索引)(clustered) 对表的物理数据页中的数据按列进行排序,然后再重新存储到磁盘上; 聚集索引的顺序和数据行的物理顺序一致; 一个表或视图只能有一个聚集索引。 非聚集索引(非簇索引)(nonclustered) 具有完全独立于数据行的结构,非聚集索引存储了组成非聚集索引的关键字值和行定位器。 (见下页图) 一个表中可以有多个非聚集索引。 * * 四、增加索引带来的不利因素: 索引要占用物理空间; 当对表中数据进行了添加、删除和修改操作后,系统需要对索引进行动态维护,需要占用一定的时间; * 五、创建索引必须基于以下原则 在主关键字列中创建索引(自动); 在经常要查询的列中创建索引; 在经常用于连接的列,如外关键字列中创建索引; 在经常出现在WHERE子句和ORDER BY子句中的列中创建索引; 当UPDATE的性能需求远大于SELECT的性能需求时,不应该创建索引。 * 七、另外应当注意 当在表中创建主关键字约束或惟一性约束时,SQL Server自动创建一个惟一性索引; 如果表中已有数据,那么在创建索引时, SQL Server会检查数据的合法性; 当有多个列作为关键字时,应创建复合索引。 * 5.1.1 创建索引 5.1.2 查看、修改和删除索引 * 5.1.1 创建索引 利用SSMS直接创建索引。 利用Transact-SQL语句中的CREATE INDEX命令创建索引。 * 1. 利用SSMS创建索引 如图所示。 * 使用索引效果的测试 程序 * 练习: 为表course创建一个唯一聚集索引; 为表student创建一个年龄、学号复合索引; * 7.1.2 查看、修改和删除索引 1. 利用SSMS查看、修改和删除索引 * 2. 用系统存储过程查看和更改索引名称 系统存储过程sp_helpindex可以返回表的所有索引信息,其语法形式如下: sp_helpindex ‘name’ 其中’name’参数用于指定当前数据库中的表的名称。 另外,系统存储过程sp_rename可以用来更改索引的名称,其语法形式如下: sp_rename object_name,new_name * 例: 更改employees表中的索引employees_name_index名称为employees_name_ind,其程序清单如下: Exec sp_rename ‘employees.[employees_name_index]’, ‘employees_name_ind’, ‘index’ * 3. 使用Transact-SQL语句中的DROP INDEX命令删除索引 当不再需要某个索引时,可以将其删除,DROP INDEX命令可以删除一个或者多个当前数据库中的索引,其语法形式如下: DROP INDEX table.index | view.index [ ,...n ] 其中,table | view用于指定索引列所在的表或索引视图;index用于指定要删除的索引名称。 注意,DROP INDEX命令不能删除由CREATE TABLE或者ALTER TABLE命令创建的主键或者唯一性约束索引,也不能删除系统表中的索引。 * 5.2 约束和默认创建 在这里我们介绍5种: 创建主键约束(primary key constraint ) 创建外键约束(foreign key constraint) 创建缺省值约束(default constraint) 创建检查约束(check constraint) 创建唯一性约束(unique constraint) * 1. 创建主键约束 表中经常有一个列或列的组合,其值能唯一地标识表中的每一行。这样的一列或多列称为表的主键,通过它可强制表的实

文档评论(0)

wuhuaiyu002 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档