第六章 索引和视图new

第六章 索引和视图new

ID:39835844

大小:1.71 MB

页数:55页

时间:2019-07-12

第六章 索引和视图new_第1页
第六章 索引和视图new_第2页
第六章 索引和视图new_第3页
第六章 索引和视图new_第4页
第六章 索引和视图new_第5页
资源描述:

《第六章 索引和视图new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第6章索引和视图6.1索引6.2视图6.1索引6.1.1索引基本概念6.1.2索引的存储结构及分类6.1.3创建和删除索引*26.1索引基本概念索引与书籍中的目录类似。索引使对数据的查找不需要对整个表进行扫描,就可以在其中找到所需数据。可以为表中的单个列建立索引,也可以为一组列(索引项)建立索引。索引一般采用B树结构。*3索引及数据间的对应关系示意图索引的组织方式索引项按数据页(一块固定大小的连续存储空间)存储。表中的全部索引连在一起。6.1.2索引的存储结构及分类聚集索引(ClusteredIndex,也称为聚簇索引)将数据按照索引项的顺序进

2、行物理排序。非聚集索引(Non-clusteredIndex,也称为非聚簇索引)。不对数据进行物理排序。两类索引相同点聚集索引和非聚集索引一般都使用B-树结构来存储索引项,都包含数据页和索引页,索引页用来存放索引项和指向下一层的指针,数据页用来存放数据。B-树结构聚集索引聚集索引的B-树按自下而上建立,最下层的叶级节点存放数据,它同时也是数据页。多个数据页生成一个中间层节点的索引页,然后再由数个中间层的节点的索引页合成更上层的索引页,如此上推,直到生成顶层的根节点的索引页。9建有聚集索引的表的存储结构示意图数据示例enoenamedeptE01

3、ABCSE02AACSE03BBISE04BCCSE05CBISE06ASISE07BBISE08ADCSE09BDISE10BAISE11CCCSE12CACS聚集索引非聚集索引聚集索引示例12数据示例查找过程当在建有聚集索引的列上查找数据时首先从聚集索引树的入口(根节点)开始逐层向下查找,直到达到B-树索引的叶级,也就是达到了要找的数据所在的数据页,最后只在这个数据页中查找所需数据查找示例SELECT*FROMemployeeWHEREeno='E08'说明在聚集索引的叶节点中,数据按聚集索引项的值进行物理排序。因此,聚集索引很类似于电话号

4、码簿。一个表只能包含一个聚集索引。但一个索引可以由多个列(组合索引)组成。下列情况可考虑创建聚集索包含大量非重复值的列。使用下列运算符返回一个范围值的查询:BETWEENAND、>、>=、<和<=。被连续访问的列。不返回大型结果集的查询。经常被用作连接的列。ORDERBY或GROUPBY子句中指定的列。下列情况不适于建立聚集索引频繁更改的列。字节长的列。因为聚集索引的索引项的值将被所有非聚集索引作为查找关键字使用,并被存储在每个非聚集索引的B树的叶级索引项中。非聚集索引非聚集索引与图书后边的术语表类似。数据存储在一个地方,术语表存储在另一个地方

5、。而且数据并不按术语表的顺序存放,但术语表中的每个词在书中都有确切的位置。非聚集索引就类似于术语表,而数据就类似于一本书的内容。非聚集索引的存储示意图非聚集索引与聚集索引的差别数据不按非聚集索引关键字值的顺序排序和存储。叶级节点不是存放数据的数据页。非聚集索引B树的叶级节点是索引行。每个索引行包含非聚集索引关键字值以及一个或多个行定位器,这些行定位器指向该关键字值对应的数据行(如果索引不唯一,则可能是多行)在eno列上建有非聚集索引的情形数据示例下述情况可考虑建立非聚集索引包含大量非重复值的列。不返回大型结果集的查询。经常作为查询条件使用的列。

6、经常作为连接和分组条件的列。唯一索引确保索引列不包含重复值。在组合唯一索引的情况下,可以确保索引列中每个值的组合都是唯一的。例如,如果在last_name、first_name和middle_initial列的组合上创建了唯一索引full_name,则该表中任何两个人都不可以具有完全相同的名字。聚集索引和非聚集索引都可以是唯一的。说明如果必须要实施唯一性来确保数据的完整性,则应在列上创建UNIQUE约束或PRIMARYKEY约束,而不要创建唯一索引。例如,如果限制身份证号码(sid)列的取值不重复,则可在sid列上创建UNIQUE约束。实际上,

7、当在表上创建PRIMARYKEY约束或UNIQUE约束时,系统会自动在这些列上创建唯一索引。创建索引CREATE[UNIQUE][CLUSTERED

8、NONCLUSTERED]INDEX索引名ON表名(列名[,...n])UNIQUE:创建唯一索引。CLUSTERED:创建聚集索引。NONCLUSTERED:创建非聚集索引。如果没有指定索引类型,则默认是创建非聚集索引。示例例1为Student表的Sname列创建非聚集索引。CREATEINDEXSname_indONStuent(Sname)例2为Student表的Sid列创建唯一聚集索引。C

9、REATEUNIQUECLUSTEREDINDEXSid_indONStuent(Sid)示例例3为Employee表的FirstName和LastN

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。