第5章-索引与视图_第1页
第5章-索引与视图_第2页
第5章-索引与视图_第3页
第5章-索引与视图_第4页
第5章-索引与视图_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库技术与应用数据库技术与应用教材编写组第5章索引与视图索引视图视图的创建与使用2问题提出什么是索引?为什么需要索引?索引与排序有什么区别?什么是视图?为什么要建立视图?3?5.1索引5.1.1索引的概念5.1.2索引的分类5.1.3索引的管理

45.1.1索引的概念索引是对数据库表中一个或多个字段的值进行排序而创建的一种分散存储结构(即通过指针来建立元素间的联系和存取路径)。索引也是对数据表中一个或多个关键字段的值与表中的行之间的对照表。5院系代码5.1.1索引的概念建立索引的目的有以下几点:(1)可以大大加快数据检索速度;(2)可以加速排序、分组、连接等操作(3)实现表与表之间的参照完整性(强制实施唯一性)(4)通过创建唯一索引,可以保证数据记录的唯一性例如,查询Sales数据库employee表中编号为“E002”的员工的信息,可以执行如下SQL语句:SELECT*FROMemployeeWHEREemployee_id='E002'若在employee_id列上没建索引,SQL按顺序一行一行地查询;若在该列上建了索引,SQL先搜索该索引,找到要求的值(E002),再按照索引中的信息位置,确定表中的行。65.1.2索引的分类SQLServer2008中提供的索引类型主要有:聚集索引、非聚集索引、唯一索引、索引视图、全文索引、包含性列索引、空间索引、筛选索引、XML(即可扩展标记语言)索引按存储结构分聚集索引和非聚集索引按数据的唯一性分唯一索引和非唯一索引按键列的个数分单列索引和多列索引75.1.2索引的分类按索引的存储结构分为1.聚集索引将数据行的键值在表内排序并存储对应的数据记录,使得数据表物理顺序与索引顺序一致(即通过物理上的顺序进行排列而建立索引。一个表只能建立一个聚集索引,该索引可以包含多个列(组合索引)85.1.2索引的分类2.非聚集索引非聚集索引完全独立于数据行的结构。数据存储在一个地方,索引存储在一个地方。非聚集索引中的数据排列顺序并不是中数据的排列顺序。最多能创建249个;创建非聚集索引前要先创建聚集索引。如:可以创建非聚集索引用于检索学号,创建非聚集索引用于检索性别。95.1.2索引的分类聚集索引与非聚集索引的比较10索引类型存取速度索引的数量所需空间聚集索引快一表一个少非聚集索引慢一表可以多个多5.1.2索引的分类SQLSever中数据的访问方法:表扫描法当访问未建索引的表内数据时,从表的起始处逐行查找,直到符合条件为止。使用索引当使用索引访问建有索引的表内数据时,系统会通过遍历索引树结构来查找行的存储位置,效率非常高。115.1.2索引的分类唯一索引确保在索引键上不存在相同的值。索引也可以不是唯一的,非唯一索引的多行可以共享同一键值。聚集索引和非聚集索引都可以是唯一的。创建主键(PRIMARYKEY)或唯一性(UNIQUE)约束时,数据库引擎会自动为指定的列创建唯一索引。索引视图对索引创建唯一聚集索引后,结果集将存储在数据库中,就像带有聚集索引的表一样,这样的视图称为索引视图,即是为了实现快速访问而将其结果持续存放于数据库内并创建索引的视图。125.1.3索引的管理

索引的管理包括创建索引、查看索引、修改索引、删除索引。创建索引的方法系统自动创建索引在创建UNIQUE约束或PRIMARYKEY约束时,系统自动为这些列创建聚集索引。135.1.3索引的管理

2.用户创建索引(1)使用图形化界面向导创建索引145.1.3索引的管理

索引的创建(2)使用“表设计器”创建索引15“索引/键”窗口5.1.3索引的管理

索引的查看在SQLServer的对象资源管理器可以直观地查看索引信息索引的重建索引的修改可通过“对象资源管理器”实现16为什么要重建?重建的方法?5.1.3索引的管理

索引的修改可通过“对象资源管理器”实现注意:不能通过此方法修改作为PRIMARYKEY或UNIQUE约束的结果而创建的索引,必须修改约束。索引的删除索引会减慢插入(INSERT)、更新(UPDATE)和删除(DELETE)语句的执行速度。如果发现索引阻碍整体性能或不再需要索引,则可将其删除。17如何删除索引??5.2视图5.2.1视图的概念5.2.2视图的创建5.2.3视图的查询5.2.4视图的修改5.2.5视图的删除185.2.1视图的概念索引是为了提升数据查询性能,视图一般用于给用户提供一个统一的接口而屏蔽掉无用或需要保密的信息。视图是一个虚拟表,并不包含任何的物理数据视图中的数据不物理地存储在数据库内。SELECT语句的结果集构成了视图的内容。19为什么要提供视图?什么是视图?5.2.1视图的概念视图的优点(1)为用户集中数据,简化用户的数据查询和处理。(2)屏蔽数据库的复杂性。(3)简化用户权限的管理。(4)便于数据共享。(5)可以重新组织数据以便输出到其他应用程序中。20视图的优点有什么?5.2.1视图的概念视图有系统视图和用户创建的视图系统视图(用于返回系统相关信息的视图)目录视图、兼容性视图、动态管理视图、信息架构视图、复制视图215.2.2视图的创建用户创建的视图使用图形工具创建视图在SSMS中创建视图的方法主要在视图设计器中完成。22在显示的表列表中选择需要添加的表名,单击“添加”按钮。5.2.2视图的创建使用图形工具创建视图新建视图窗口235.2.2视图的创建使用CREATEVIEW语句创建视图语法格式:CREATEVIEW[schema_name.]view_nameAS

select_statement[WITHCHECKOPTION]24查询语句指出在视图上所进行的修改都要符合查询语句所指定的限制条件,这样可以确保数据修改后仍可通过视图看到修改的数据。5.2.2视图的创建查询语句用来创建视图的SELECT语句。对SELECT语句有以下的限制:定义视图的用户必须对所参照的表或视图有查询权限,即可执行SELECT语句。不能使用COMPUTE或COMPUTEBY子句。不能使用ORDERBY子句。不能使用INTO子句。不能在临时表或表变量上创建视图。255.2.2视图的创建操作方法在SSMS窗口右键单击“新建查询”命令,在弹出的快捷菜单中选中“视图设计器”命令,打开“视图设计器”,然后输入相应命令进行操作。265.2.2视图的创建例5.1:在Student数据库中创建St_view视图,该视图选择学生信息表St_Info中的所有女学生。创建St_view视图的语句:CREATEVIEWSt_viewASSELECT*FROMSt_InfoWHERESt_Sex='女'27查询语句创建基于单表的视图5.2.2视图的创建例5.2:创建v_Stu1视图,包括“法学1601”班各学生的学号、姓名、选修的课程号及成绩。要保证对该视图的修改都符合“Cl_Name为法学1601”这一条件。创建v_Stu1视图的语句:CREATEVIEWv_Stu1AS

SELECTSt_Info.St_ID,St_Name,S_C_Info.C_No,ScoreFROMSt_Info,S_C_InfoWHERESt_Info.Cl_Name='法学1601'ANDSt_Info.St_ID=S_C_Info.St_IDWITHCHECKOPTION28对v_Stu1视图的更新操作:修改操作:自动加上Cl_Name='法学0501'的条件删除操作:自动加上Cl_Name='法学0501'的条件插入操作:自动检查Cl_Name属性值是否为'法学0501'

如果不是,则拒绝该插入操作如果没有提供Sdept属性值,则自动定义Cl_Name为'法学0501'创建基于多表的视图5.2.2视图的创建例5.4:创建学生的平均成绩视图v_stu_avg,包括St_ID(在视图中列名为学号)和平均成绩。创建v_stu_avg视图的语句:CREATEVIEWv_stu_avgASSELECTSt_IDAS学号,AVG(Score)AS平均成绩

FROMS_C_InfoGROUPBYSt_ID29创建分组视图5.2.2视图的创建补充例子:例1:在视图文件v_Stu1中创建选修了课程且成绩在85分以上的学生的视图。CREATEVIEWstu_sc_ScoreASSELECTSt_ID,St_Name,ScoreFROMv_stu1WHEREScore>=8530基于视图创建的视图5.2.2视图的创建例2:创建一个反映学生出生年份的视图;CREATEVIEWstu_year(St_id,St_name,birthdate)ASSELECTSt_id,St_name,出生年份=year(birthdate)FROMSt_Info31有表达式的视图5.2.3视图的查询视图创建后,就可以像查询基本表那样对视图进行查询。例5.5:使用视图v_Stu查找法学1601班的学生的St_ID、姓名、St_Sex。 SELECTSt_id,St_nameAS姓名,St_SexFROMv_Stu例5.6:查找平均成绩在80分以上的学生的学号和平均成绩。SELECT*FROMv_stu_avgWHERE平均成绩>80325.2.4视图的修改在视图使用过程中,可能经常会发生基表改变,视图无法正常工作的情况,则需修改视图的定义。1.使用图形工具修改视图335.2.4视图的修改2.使用ALTERVIEW语句修改视图语法格式:ALTERVIEW[schema_name.]view_nameASselect_statement[WITHCHECKOPTION]345.2.4视图的修改例5.7:修改例5.1中创建的St_view视图。将视图中选择学生信息表St_Info中的所有女学生修改为选择所有男学生。修改St_view视图的语句:ALTERVIEWSt_viewASSELECT*FROMSt_InfoWHERESt_Sex='男'355.2.5视图的删除当不再需要某个存在的视图时,可以删除它。以释放存储空间。删除视图后,表和视图所基于的数据并不受影响。1.使用图形工具删除视图2.使用DROPVIEW语句删除视图语法格式:DROPVIEW[schema_name.]view_name[,...n]例5.8:删除St_view视图。语句为:DROPVIEWst_view36本章小结(1)索引索引是一个单独的、物理的数据库结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。根据索引的存储结构不同,将其分为聚集索引和非聚集索引两类。(2)视图视图是一个虚拟表,并不包含任何的物理数据,即视图所对应的数据不进行实际存储,数据库中只存放视图的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论