第5章索引与视图.pptx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第5章索引与视图.pptx》由会员分享,可在线阅读,更多相关《第5章索引与视图.pptx(45页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据库技术与应用数据库技术与应用 SQL-ServerSQL-Server第第5 5章章 索引与视图索引与视图 第第5章章 索引与视图索引与视图5.15.1 索引概述索引概述5.2 5.2 索引的操作索引的操作 5.35.3 视图概述视图概述5.45.4 视图的操作视图的操作5.55.5 视图的应用视图的应用 2数据库技术与应用数据库技术与应用 35.1 索引索引数据库技术与应用数据库技术与应用 45.1.1 索引的基本概念索引的基本概念 索引是对数据库表中一个或多个字段的值进行排序而创索引是对数据库表中一个或多个字段的值进行排序而创建的一种分散存储结构。建的一种分散存储结构。建立索引的目的有
2、以下几点:建立索引的目的有以下几点:(1)加速数据检索加速数据检索 (2)加速连接、加速连接、ORDER BY和和GROUP BY等操作等操作 (3)查询优化器依赖于索引起作用查询优化器依赖于索引起作用 (4)强制实行的唯一性强制实行的唯一性数据库技术与应用数据库技术与应用 什么是索引什么是索引q汉语字典中的汉字按汉语字典中的汉字按页页存放,一般都有汉语拼音目录(存放,一般都有汉语拼音目录(索引索引)、偏旁部首目录等、偏旁部首目录等q我们可以根据拼音或偏旁部首,我们可以根据拼音或偏旁部首,快速快速查找某个字词查找某个字词5.1.1 索引的基本概念索引的基本概念5数据库技术与应用数据库技术与应用
3、 IndexesUseKeyValuestoLocateData(根据索引键查找定位数据行)Data Pages(数据页)Index Pages(索引页)什么是索引什么是索引5.1.1 索引的基本概念索引的基本概念6数据库技术与应用数据库技术与应用 什么是索引什么是索引qSQLServer中的数据也是按页(4KB)存放q索引:是SQLServer编排数据的内部方法。它为SQLServer提供一种方法来编排查询数据。q索引页:数据库中存储索引的数据页;索引页类似于汉语字(词)典中按拼音或笔画排序的目录页。q索引的作用:通过使用索引,可以大大提高数据库的检索速度,改善数据库性能。5.1.1 索引的
4、基本概念索引的基本概念7数据库技术与应用数据库技术与应用 8 5.1.2 索引的分类索引的分类 根据数据库的功能,在根据数据库的功能,在SQL Server 2012中中可创建可创建3种类型种类型的索引,即唯一性索引、主键索引和聚集索引的索引,即唯一性索引、主键索引和聚集索引。1唯一性索引唯一性索引 在表中建立唯一性索引时,组成该索引的字段或字段组合在表中建立唯一性索引时,组成该索引的字段或字段组合在表中具有唯一值,也就是说,对于表中的任何两行记录来说,在表中具有唯一值,也就是说,对于表中的任何两行记录来说,索引键的值都是各不相同。索引键的值都是各不相同。唯一性索引要求组成该索引的字段或字段组
5、合不能在唯一性索引要求组成该索引的字段或字段组合不能在多行多行记录中具有记录中具有NULL值。值。数据库技术与应用数据库技术与应用 92主键主键索引索引 表中通常有一个字段或一些字段组的合,其值用来唯表中通常有一个字段或一些字段组的合,其值用来唯一标识表中的每一行记录,该字段或字段组合称为表的主一标识表中的每一行记录,该字段或字段组合称为表的主键。主键索引是唯一索引的特殊类型。主键索引要求主键键。主键索引是唯一索引的特殊类型。主键索引要求主键中的每个值是唯一的,并且不能为空中的每个值是唯一的,并且不能为空数据库技术与应用数据库技术与应用 10 3聚集索引聚集索引(Clustered):在聚集索
6、引中,表中各记录的物理顺序与键值的逻辑在聚集索引中,表中各记录的物理顺序与键值的逻辑(索索引引)顺序相同。只有在表中建立了一个聚集索引后,数据才会顺序相同。只有在表中建立了一个聚集索引后,数据才会按照索引键值指定的顺序存储到表中。由于一个表中的数据按照索引键值指定的顺序存储到表中。由于一个表中的数据只能按照一种顺序来存储,所以只能按照一种顺序来存储,所以在一个表中只能建立一个聚在一个表中只能建立一个聚集索引集索引。非非聚集索引聚集索引(Non-clustered):非聚集索引指定表的逻辑顺序。:非聚集索引指定表的逻辑顺序。数据存储在一个位置,索引存储在另一个位置,索引中包含数据存储在一个位置,
7、索引存储在另一个位置,索引中包含指向数据存储位置的指针。可以有多个,小于指向数据存储位置的指针。可以有多个,小于249个个数据库技术与应用数据库技术与应用 索引分类索引分类【例】在学生 表中查询学号sno为“20021003012”的行(在列sno上已建立聚集索引)索引表数据表11数据库技术与应用数据库技术与应用 索引分类索引分类【例】在学生表中查询学号s_no为“20021003012”的行(在列s_no上已建立非聚集索引)索引表数据表12数据库技术与应用数据库技术与应用 135.1.3 索引的操作索引的操作1.创建索引创建索引使用企业管理器向导建立索引使用企业管理器向导建立索引使用企业管理
8、器直接创建索引使用企业管理器直接创建索引数据库技术与应用数据库技术与应用 创建索引创建索引使用T-SQL创建基本语句格式:基本语句格式:CREATEUNIQUECLUSTERED|NONCLUSTEREDINDEX索引名索引名ON表表|视图视图(列列ASC|DESC,.n)UNIQUECLUSTERED NONCLUSTEREDASC|DESC创建唯一索引创建聚集索引创建非聚集索引创建排序方式,默认为升序(ASC)14数据库技术与应用数据库技术与应用 创建索引创建索引例例5-1 在学院表中,除了学院编号字段是唯一的,学院名称字段也具有唯一值,对学院表中的学院名称字段建立唯一索引。创建唯一索引命
9、令为:CREATEUNIQUEINDEXSCHOOLNAMEON学院(学院名称)例例5-2 学院表中已存在一个主键,现在学院名称字段上再创建聚集索引,看看结果如何?CREATE UNIQUE CLUSTERED INDEX 学院 ON 学院(学院名称)15数据库技术与应用数据库技术与应用 16例例5-3 在学院表中,如果会经常对学院名称、学院地址和学院电话进行查询,可以建立以学院名称、学院地址和学院电话为关键字的索引。CREATENONCLUSTEREDINDEXSCHOOLON学院(学院名称,学院地址,学院电话)创建索引创建索引数据库技术与应用数据库技术与应用 5.1.4 查看索引查看索引使
10、用企业管理器查看索引使用企业管理器查看索引使用系统存储过程查看索引使用系统存储过程查看索引语法格式:语法格式:sp_helpindex name其中其中 name子句为指定当前数据库中的表的名称。子句为指定当前数据库中的表的名称。例例5-4 查看学院表的索引,其操作为:use学生成绩管理系统数据库gosp_helpindex学院17数据库技术与应用数据库技术与应用 5.1.5 删除索引删除索引例例5-5 删除学院表内名为SCHOOL的索引。use学生成绩管理系统数据库goIFEXISTS(SELECTnameFROMsysindexesWHEREname=SCHOOL)DROPINDEXSCH
11、OOLON学院删除索引语句的语法格式如下:DROP INDEX index_name,nONdatabase_name.schema_name.|schema_name.table_or_vlew_name18数据库技术与应用数据库技术与应用 索引的优缺点索引的优缺点优点加快访问速度加快访问速度加强行的唯一性加强行的唯一性缺点带索引的表在数据库中需要更多的存储空间带索引的表在数据库中需要更多的存储空间操纵数据的命令需要更长的处理时间,因为它们需要操纵数据的命令需要更长的处理时间,因为它们需要对索引进行更新对索引进行更新19数据库技术与应用数据库技术与应用 创建索引创建索引的指导原则的指导原则请
12、按照下列标准选择建立索引的列。该列用于频繁搜索该列用于频繁搜索该列用于对数据进行排序该列用于对数据进行排序请不要使用下面的列创建索引:列中仅包含几个不同的值。列中仅包含几个不同的值。表中仅包含几行。为小型表创建索引可能不太划算表中仅包含几行。为小型表创建索引可能不太划算,因为因为SQL ServerSQL Server在索引中搜索数据所花的时间比在在索引中搜索数据所花的时间比在表中逐行搜索所花的时间更长表中逐行搜索所花的时间更长 20数据库技术与应用数据库技术与应用 5.2 5.2 视图视图数据库技术与应用数据库技术与应用 5.2.1 5.2.1 视图的概念视图的概念CREATE VIEW v
13、iew_stuInfo_stuMarks AS SELECT 姓名姓名=stuName,学号学号=stuInfo.stuNo,基于学员信息表和成绩表创建视图教员需要的视图:方便查看学员的成绩班主任需要的视图:方便查看学员的档案数据库技术与应用数据库技术与应用 5.2.1 视图的概念视图的概念1、什么是视图、什么是视图视图是一张虚拟表,它表示一张表的部分数据或多张表的综合数据,其结构和数据是建立在对表的查询基础上视图中并不存放数据,而是存放在视图所引用的原始表(基表)中同一张原始表,根据不同用户的不同需求,可以创建不同的视图23数据库技术与应用数据库技术与应用 2.视图的作用视图的作用 视图通常
14、用来集中、简化和自定义每个用户对数据库的视图通常用来集中、简化和自定义每个用户对数据库的不同认识。视图可用作安全机制,方法是允许用户通过视图不同认识。视图可用作安全机制,方法是允许用户通过视图访问数据,而不授予用户直接访问视图基础表的权限。访问数据,而不授予用户直接访问视图基础表的权限。(1)简化简化操作操作 (2)定制数据定制数据 (3)导出导出数据数据 (4)安全性安全性24视图的用途筛选表筛选表中中的行的行防止未经许可的用户访问敏感数据防止未经许可的用户访问敏感数据降低数据库的复杂程度降低数据库的复杂程度将将多个多个物理数据库抽象为一个逻辑数据库物理数据库抽象为一个逻辑数据库数据库技术与
15、应用数据库技术与应用 5.2 视图的操作视图的操作5.2.1 创建视图创建视图1.使用企业管理器创建视图使用企业管理器创建视图2.使用使用Transact-SQL语句建立视图语句建立视图语法结构:语法结构:CREATE VIEW database_name.owner_name.view_name(column,)WITH ENCRYPTION|SCHEMABINDING|VIEW_METADATAAS select_statementWITH CHECK OPTION25数据库技术与应用数据库技术与应用 1、为定制特定数据视图、为定制特定数据视图 例例5-6 如果经常要查询课程的名称、学分、
16、学时和课程性质,表中的其他不需要,就只关注这些数据,为这些特定的数据建立一个视图。CREATEVIEW课程基本信息ASSELECT课程名称,学时数,学分数,课程性质FROM课程;例例5-7 在学生成绩管理系统数据库中创建学分数大于等于3分的相关课程信息视图,该视图选择1个基表(课程表)中的数据来显示学分大于等于3分的虚拟表。CREATEVIEW大于等于3学分课程信息ASSELECT*FROM课程where学分数=326数据库技术与应用数据库技术与应用 5-8 创建创建视图:程序设计成绩信息,要求能显示:“学号,姓名,专业班级,课程名称,成绩”等数据CREATEVIEW程序设计成绩信息ASSEL
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第5章 索引与视图 索引 视图
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内