- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第10讲索引与视图资料
* * * 回顾 单表查询: 基本语法:SELECT…FROM…WHERE 函数:Count(), AVG(), Year(), Len()…… 排序:Order by [DESC] 重定向: Into 分组:Group by…Having 嵌套查询: All , any , some , in 连接查询: INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN , CROSS JOIN * 数据库原理与应用 第10讲 索引与视图 * 提纲 重点 索引的分类、创建索引的方法 视图的作用、创建视图的方法、利用视图修改数据的方法与限制。 难点 对聚集索引和唯一索引的区分 在视图中更新数据的限制 * 1. 索引 关键词:为了提高对数据表中数据的检索速度,基于某些列创建排序文件。提高了检索速度,但会影响增、删、改速度。 * 索引的作用 索引是对数据库表中一个或多个字段的值进行排序而创建的一种分散存储结构。创建索引的作用在于提高查询速度。 为什么索引能提高查询速度呢? 索引中提供了顺序,在已经排好序的数据的数据集合中查找数据,可以使用二分法,查询的平均时间为log2n。而如果在没有排序的数据中进行查找,只能顺序查找,平均效率为n/2。 索引(1) * 索引提高查询速度的例子 系部代码 指针地址 01 8 02 2 03 5 04 4 05 1 06 7 07 6 08 3 地址序号 系部代码 系部名称 系主任 1 05 社会科学部 刘克忠 2 02 经济管理系 刘国峰 3 07 建筑系 王未起 4 04 基础科学部 王彬 5 03 传播技术系 田建国 6 08 农林系 陈瑞修 7 06 机电工程系 王伟东 8 01 计算机系 刘海军 索引 数据 比如:要寻找08号系部的信息,先在索引中用二分法找到08系的地址,然后在数据中定位。 索引(2) * 以employee表为例,对employee_id建聚集索引前后插入记录对比。 数据表创建之后,创建索引 语法格式: CREATE [UNIQUE][CLUSTERED|NONCLUSTERED] INDEX index_name ON table_name(column_name[ASC|DESC],…n) 例 索引(4) * 索引的类型 依据索引对数据表中的记录顺序的影响,分为: 聚集索引(CLUSTERED),将数据行的键值在表内排序并存储对应的数据记录,使得数据表物理顺序与索引顺序完全一致。(聚集索引中B树的叶节点存放数据页信息)一个表只能建一个聚集索引。 非聚集索引(NONCLUSTERED)。完全独立于数据行的结构,不改变数据的物理存储顺序,通过指向数据行的指针寻找数据。(非聚集索引中B树的叶节点存放非聚集索引的键值,每个键值项都有指针指向包含该键值的数据行)可以建多个非聚集索引(最多249个)。 注:一个表中有聚集索引与非聚集索引,先建聚集索引。 索引(3) * 依据对列或列的组合的值的唯一性要求,分为: 唯一索引(UNIQUE):索引列不能出现重复值。事实上,唯一索引最常用在primary key(主键)字段上。 非唯一索引:默认为非唯一索引。 复合索引:一个索引可以依据一个字段来创建,称为单值索引。也可以基于多个字段来创建,称之为复合索引。对于经常放在一起用来做查询条件的列组合,使用复合索引。 索引(4) * 注意 主键索引是一种特殊的索引,当给表定义了主键时,将自动创建主键索引,主键索引一定是唯一索引,但既可以是聚集索引,也可以是非聚集索引。 复合索引同时也可以是唯一索引,即字段组合的值不能重复,但单独字段值可重复。复合索引组合字段有限制:在同一表中不多于16个字段的组合。 索引(5) * 注意: 是否建立索引由用户决定,是否使用索引及何时使用索引是由数据库引擎中的查询优化器决定。 一般只在经常用来检索的字段上建立索引。为每个字段都建立索引没有必要。因为索引自身也需维护,并占用一定的资源,索引会减慢INSERT、UPDATE和DELETE语句的执行速度。 索引(6) * 创建索引: 在创建数据表时创建索引。 在数据表创建之后创建索引。 以上两种方法,都可以用管理平台的图形界面来实现,也可以用SQL语句来实现,这里只讲述SQL语句。 查看索引 用SQL Server管理平台查看修改索引 使用系统存储过程查看索引 语法格式: sp_helpindex TableName 索引(8)---用SQL Server管理平台查看修改索引小课介绍 * 课堂小练 在employee表上创建唯一、聚集、复合索引(复合项为:employee_id,wages),索引名为EDID。 --select * from employee
CR
文档评论(0)