第6章 创建视图和索引-2ppt课件.ppt

上传人:春哥&#****71; 文档编号:15237548 上传时间:2022-05-11 格式:PPT 页数:72 大小:4.33MB
返回 下载 相关 举报
第6章 创建视图和索引-2ppt课件.ppt_第1页
第1页 / 共72页
第6章 创建视图和索引-2ppt课件.ppt_第2页
第2页 / 共72页
点击查看更多>>
资源描述

《第6章 创建视图和索引-2ppt课件.ppt》由会员分享,可在线阅读,更多相关《第6章 创建视图和索引-2ppt课件.ppt(72页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、在此输入您的封面副标题第6章 创建视图和索引-2中国铁道出版社中国铁道出版社33【项目目标】【项目目标】 理解视图的作用 能熟练创建、修改、删除视图 在实际应用开发时能灵活运用视图以提高开发效率 能根据项目开发的需求,学会分析并创建索引,以提高查询速度 会根据实际需要显示索引、重新命名索引、删除索引 会对索引进行分析与维护第第6章章 创建视图和索引创建视图和索引44【项目描述】【项目描述】按照需求为XS数据库创建索引,提高查询速度;创建视图,增强查询的灵活性。【项目分析】【项目分析】在数据库应用中,最主要的操作就是查询。为了增强查询的灵活性,就需要在表上创建视图,满足用户复杂的查询需要。比如,

2、一个学生一学期要上多门课程,这些课程的成绩存储在多张表中,要想了解每个学生的成绩需要打开一张张数据表来看,非常不方便。而视图能将存储在多张表中的数据汇总到一张新“表”中,而这个“表”无需新建并存储。第第6章章 创建视图和索引创建视图和索引55SQL SERVER 2008为我们提供了视图这一类数据库对象。视图是关系数据库系统提供给用户以多种角度观察数据库中数据的重要机制。用户通过视图可以多角度地查询数据库中的数据,还可以通过视图修改、删除原基本表中的数据。用户对数据库最频繁的操作是数据查询。一般情况下,在进行查询操作时SQL Serve需要对整个数据表进行数据搜索,如果数据表中的数据非常多,这

3、个搜索就需要比较长的时间,从而影响了数据库的整体性能。善用索引技术能有效提高搜索数据的速度。本项目主要介绍有关视图、索引的基础知识和视图、索引的操作方法。第第6章章 创建视图和索引创建视图和索引66【任务设置】【任务设置】任务1创建和使用视图任务2创建管理索引实训七 为sale数据库创建视图和索引第第6章章 创建视图和索引创建视图和索引77【项目定位】【项目定位】数据库系统开发第第6章章 创建视图和索引创建视图和索引88【任务目标】【任务目标】 理解视图的作用 能熟练创建、修改、删除视图 在实际应用开发时能灵活运用视图以提高开发效率-任务1 创建和使用视图第第6章章 创建视图和索引创建视图和索

4、引99【任务描述】【任务描述】按需求在XS数据库建立视图,并修改其中数据。1. 依据XSDA表创建JSJ_XS视图,内容包括所有“信息系”的学生。2. 依据XSDA表和XSCJ表创建AVG_XS视图,该视图包含每个学生的学号、姓名、平均成绩。3向JSJ_XS视图中插入一条新记录,其各列的值为:200610、李立、男、信息、1986-6-23、满、60、NULL。4依据JSJ_XS视图查询所有信息系的女学生。5依据JSJ_XS视图为所有信息系学生的总学分加2分。6依据JSJ_XS视图,删除3中新添加的记录。7修改AVG_XS视图,该视图包含每个学生的学号、姓名、课程号、课程名、成绩。8删除以上建

5、立的两个视图。 -任务1 创建和使用视图第第6章章 创建视图和索引创建视图和索引1010【任务分析】【任务分析】首先创建、修改、删除视图的T-SQL语句必须是批处理中的第一条语句。其次对视图数据的插入、修改、删除操作其本质是作用于创建视图所依赖的基本表,所以当插入、修改、删除操作涉及一个基本表时操作成功,否则失败。-任务1 创建和使用视图第第6章章 创建视图和索引创建视图和索引1111视图(View)作为一种数据库对象,为用户提供了一种检索数据表数据的方式。用户通过视图来浏览数据表中感兴趣的部分或全部数据,而数据的物理存放位置仍然在表中。本章将介绍视图的概念,作用,以及创建、修改和删除视图的方

6、法。视图是一个虚拟表。虚拟表的含义包含两部分。这个虚拟表没有表结构,不实际存储在数据库中,数据库中只存放视图的定义,而不存储视图对应的数据;另一方面视图中的数据来自于“基表”,是在视图被引用的时候动态生成的。打开视图时看到的记录实际仍存储在基表中。-任务1 创建和使用视图第第6章章 创建视图和索引创建视图和索引1212视图一旦定义好,就可以像一个基本表一样进行查询、删除与修改等操作。正因为视图中的数据仍存放在基表中,所以,视图中的数据与基表中的数据必定同步,即对视图的数据进行操作时,系统根据视图的定义去操作与视图相关联的基表。数据库系统表sysobjects中保存每个视图的相关信息,它的类型为

7、“V”。视图作为一类数据库对象,它的使用有如下作用: 数据保密。对不同的用户定义不同的视图,使用户只能看到与自己有关的数据。 简化查询操作,为复杂的查询建立一个视图,用户不必键入复杂的查询语句。只需针对此视图做简单的查询即可。 保证数据的逻辑独立性。对于视图的操作,例如查询,只依赖于视图的定义。当构成视图的基本表要修改时,只需修改视图定义中的子查询部分,而基于视图的查询不用改变。-任务1 创建和使用视图第第6章章 创建视图和索引创建视图和索引13131 1使用使用SSMSSSMS创建视图创建视图要创建视图必须拥有创建视图的权限,如果使用架构绑定创建视图,必须对视图定义中所引用的表或视图具有适当

8、的权限。下面,以在XS数据库中创建GL_XS(管理系系学生)视图为例,说明在SQL Server Management Studio中创建视图的过程。-任务1 创建和使用视图第第6章章 创建视图和索引创建视图和索引1414(1)打开SQL Server Management Studio,展开数据库XS,在对象【视图】上单击鼠标右键,在弹出的快捷菜单上选择【新建视图】,如图6-1所示。也可以在右边的窗格中右击【视图】对象,在弹出的快捷菜单中选【新建视图】。-任务1 创建和使用视图图6-1 创建视图第第6章章 创建视图和索引创建视图和索引1515(2)在出现的如图6-2所示的对话框中添加表。选择

9、与视图相关的基本表XSDA,单击【添加】按钮,选择完毕后,按【关闭】返回到上一级窗口,如图6-3所示。-任务1 创建和使用视图图6-2 选择【添加表】第第6章章 创建视图和索引创建视图和索引1616(3)在如图6-3所示的窗口的第2个窗格中选择所需的字段,根据需要指定列的别名、排序方式和规则等,如图6-4所示。-任务1 创建和使用视图注意:当视图中需要一个与原字段名不同的字段、或视图中包含计算列时,必须指定别名。图6-3选择视图所需字段第第6章章 创建视图和索引创建视图和索引1717(4)单击【保存】按钮,出现如图6-5所示的【另存为】对话框,输入视图名,单击【确定】按钮退出。-任务1 创建和

10、使用视图图6-4 选择列图6-5 保存视图第第6章章 创建视图和索引创建视图和索引18182使用T-SQL语句创建视图在T-SQL中,创建视图使用CREATE VIEW 语句。语法格式: CREATE VIEW . view_name (column_name,) AS select_statement-任务1 创建和使用视图第第6章章 创建视图和索引创建视图和索引1919说明:说明:(1)view_name 是需要创建的视图的名字,应符合T-SQL标识符的命名规则,并且不能与其它的数据库对象同名。可以选择是否指定视图所有者名称。(2)column_name是视图中的列名,它是视图中包含的列名

11、。当视图中使用与源表(或视图)相同的列名时,不必给出column_name。但在以下情况时必须指定列名,当列是从算术表达式、函数或常量派生的;两个或更多的列可能会具有相同的名称(通常是因为联接);视图中的某列被赋予了不同于派生来源列的名称时。列名也可以在 SELECT 语句中通过别名指派。(3)select_statement是定义视图的 SELECT 语句,可在SELECT语句中查询多个表或视图,以表明新创建的视图所参照的表或视图。-任务1 创建和使用视图第第6章章 创建视图和索引创建视图和索引2020注意事项:注意事项: 创建视图的用户必须对所参照的表或视图有查询权限,即可以执行SELEC

12、T语句。 创建视图时,不能使用 COMPUTE 、 COMPUTE BY、 INTO子句。也不能使用 ORDER BY 子句,除非在 SELECT 语句的选择列表中包含有一个 TOP 子句。 不能在临时表或表变量上创建视图。 不能为视图定义全文索引 。 可以在其他视图的基础上创建视图,SQL Server 2008允许嵌套视图,但嵌套层次不得超过32层。 不能将AFTER触发器与视图相关联,只有INSTEAD OF触发器可以与之相关联。-任务1 创建和使用视图第第6章章 创建视图和索引创建视图和索引2121【例6-1】创建SSMZ_VIEW,内容包括所有非“汉族”的学生。【例6-2】创建学生成

13、绩视图XSCJ_VIEW ,包括所有学生的学号、姓名及其所学课程的课程编号、课程名称和成绩。【例6-3】创建学生平均成绩视图avg_view,内容包括学生的学号,姓名,平均成绩。注意视图列名的指定。-任务1 创建和使用视图第第6章章 创建视图和索引创建视图和索引2222视图作为数据库的一个对象,它的修改包含两个方面的内容,其一是修改视图的名称,另外就是修改视图的定义。视图的名称可以通过系统存储过程SP_RENAME来修改。在本节中,主要讨论视图定义的修改,修改视图特指视图定义的修改。-任务1 创建和使用视图第第6章章 创建视图和索引创建视图和索引23231使用SSMS修改视图前面已经讲过,视图

14、是一个虚表。视图的很多操作可以看作表一样。在SQL Server Management Studio中完成视图的修改。下面将GL_XS视图内容修改为管理系学生的全部档案,视图修改的步骤如下。(1)在SQL Server Management Studio中,展开XS数据库,选中视图,该数据库中所有的视图对象出现在左边的窗格中,如图6-6所示。-任务1 创建和使用视图第第6章章 创建视图和索引创建视图和索引2424-任务1 创建和使用视图图6-6 选中视图对象第第6章章 创建视图和索引创建视图和索引2525(2)选中GL_XS,单击鼠标右键,在弹出的快捷菜单中,选中【设计】,弹出如图6-7所示的

15、窗口。-任务1 创建和使用视图图6-7 设计视图第第6章章 创建视图和索引创建视图和索引2626(3)下面的操作与创建视图类似,可以根据需要,在第一个窗格中添加或删除表,在第二个窗格进行列的选择与指定列的别名、排序方式和规则等。在这里,将XSDA中其它列添加到视图中,还可以根据需要,调整各列的排列顺序,如图6-8所示。(4)修改完毕后,按【保存】按扭保存,退出即可。-任务1 创建和使用视图第第6章章 创建视图和索引创建视图和索引27图6-8 修改视图第第6章章 创建视图和索引创建视图和索引28282 使用T-SQL语句修改视图视图的修改不仅可以通过SQL Server Management S

16、tudio实现,也可以通过T-SQL的ALTER VIEW命令来完成。语法格式:ALTER VIEW . view_name (column_name,) AS select_statement-任务1 创建和使用视图第第6章章 创建视图和索引创建视图和索引2929说明:(1)view_name 是需要修改视图的名字,它必须是一个已存在于数据库中的视图名称,此名称在修改视图操作中是不能改变的。(2)column_name是需要修改视图中的列名,这部分内容可以根据需要进行修改。(3)select_statement是定义视图的 SELECT 语句,这是修改视图定义的主要内容。修改视图绝大部分操作

17、就在于修改定义视图的SELECT 语句。【例6-4】将GL_XS视图修改为只包含管理系学生的学号,姓名与总学分。【例6-5】修改AVG_VIEW视图,将该视图内容修改为课程名及每门课程的平均分。-任务1 创建和使用视图第第6章章 创建视图和索引创建视图和索引3030当一个视图所基于的基本表或视图不存在时,这个视图不再可用,但这个视图在数据库中还存在着。删除视图是指将视图从数据库中去除,数据库中不再存储这个对象,除非你再重新创建它。当一个视图不再需要时,应该将它删除。删除视图既可以在SQL Server Management Studio中完成,也可以使用Transact-SQL命令。-任务1

18、创建和使用视图第第6章章 创建视图和索引创建视图和索引31311使用SSMS删除视图在SQL Server Management Studio中删除视图的操作方法如下:(1)展开数据库与视图,出现如图6-6所示窗口。(2)在需要删除的视图上单击鼠标右键,在弹出的快捷菜单中选择【删除】,出现如图6-10所示的对话框,选中指定的视图,单击【确定】按钮即可。-任务1 创建和使用视图第第6章章 创建视图和索引创建视图和索引3232-任务1 创建和使用视图图6-10 删除视图第第6章章 创建视图和索引创建视图和索引33332 2使用使用T-SQLT-SQL语句删除视图语句删除视图使用T-SQL语句命令删

19、除视图的语法格式如下:DROP VIEW view_name,n其中,view_name是需要删除视图的名字,当一次删除多个视图时,视图名之间用逗号隔开。【例6-6】删除例6-1中创建的少数民族视图SSMZ_VIEW。【例6-7】删除例6-3中创建的平均分的视图AVG_VIEW。-任务1 创建和使用视图第第6章章 创建视图和索引创建视图和索引3434视图是一个虚拟表。视图定义过后作为一个数据库对象存在,对视图就可以像对基表一样进行操作了。基表的操作包括查询、插入、修改与删除,视图同样可以进行这些操作,并且所使用的插入、修改、删除命令的语法格式与表的操作完全一样。-任务1 创建和使用视图第第6章

20、章 创建视图和索引创建视图和索引3535视图的建立可以基于一个基表,也可能基于多个基表。所以,在做插入、修改与删除这些更新操作时一定要注意,每一次更新操作只能影响一个基表的数据,否则操作不能完成。使用视图操作表数据,既可以在SQL Server Management Studio通过击鼠标操作完成,操作方法与对表的操作方法基本相同,也可以通过Transact-SQL语句完成。本节主要讨论通过Transact-SQL语句的方法。-任务1 创建和使用视图第第6章章 创建视图和索引创建视图和索引36361 1查询数据查询数据视图的一个重要作用就是简化查询,为复杂的查询建立一个视图,用户不必键入复杂的

21、查询语句。只需针对此视图做简单的查询即可。查询视图的操作与查询基本表一样。【例6-8】创建学生平均成绩视图xsavg,通过视图xsavg查询平均分在70分及以上学生的情况,并按平均分降序排列,当平均分相同时按学号升序排列。【例6-9】创建每门课程的平均成绩视图kcavg,通过视图kcavg查询平均分在75分及以上的课程情况,并按平均分降序排列。-任务1 创建和使用视图第第6章章 创建视图和索引创建视图和索引37372 2插入数据插入数据向视图插入数据时,使用INSERT 语句命令。语法格式与表操作一致。【例6-10】向视图SSMZ_VIEW(少数民族学生视图)插入一条新记录,各列的值分别为20

22、0899、白云、女、信息管理、1986-10-20、苗 、58 。【例6-11】向学生成绩视图XSCJ_VIEW中插入新记录,XSCJ_VIEW视图中包括学生的学号、姓名及其所学课程的课程编号、课程名称和成绩。新记录各列的值分别为200888、江涛、104、计算机文化基础、65.-任务1 创建和使用视图第第6章章 创建视图和索引创建视图和索引38383 3修改数据修改数据使用UPDATE语句可以通过视图修改基表中的数据。语法格式与表操作一致。【例6-12】通过SSMZ_VIEW视图将学号为200899学生的姓名改为“白小云”,民族改为“满”。【例6-13】通过学生成绩视图XSCJ_VIEW将所

23、有学生C语言程序设计的成绩减去2分.4 4删除数据删除数据使用DELETE语句可以通过视图修改基本表的数据。语法格式与表操作一致。【例6-14】通过视图SSMZ_VIEW删除姓名为“白小云”的记录-任务1 创建和使用视图第第6章章 创建视图和索引创建视图和索引39391. 1. 依据依据XSDAXSDA表创建表创建JSJ_XSJSJ_XS视图,内容包括所有视图,内容包括所有“信息系信息系”的学生。的学生。USE XSUSE XSGO CREATE VIEW JSJ_XSAS SELECT * FROM XSDA WHERE 系名=信息 Go-任务1 创建和使用视图第第6章章 创建视图和索引创建

24、视图和索引40402. 2. 依据依据XSDAXSDA表和表和XSCJXSCJ表创建表创建AVG_XSAVG_XS视图,该视图包含每个学生的学号、姓名、平均成绩。视图,该视图包含每个学生的学号、姓名、平均成绩。USE XSGO CREATE VIEW V_avgAS SELECT 学号,课程编号,AVG(成绩) 平均成绩 FROM XSCJgroup by 学号CREATE VIEW AVG_XSAS SELECT v_avg.学号,姓名,平均成绩 FROM xsda,v_avg where xsda.学号=V_avg.学号go-任务1 创建和使用视图第第6章章 创建视图和索引创建视图和索引4

25、1413 3向向JSJ_XSJSJ_XS视图中插入一条新记录,其各列的值为:视图中插入一条新记录,其各列的值为:200610200610、李立、男、信息、李立、男、信息、1986-6-231986-6-23、满、满、6060、NULLNULL。INSERT INTO JSJ_XSVALUES(200610,李立,男,信息,1986-6-23,满,60,null)4 4依据依据JSJ_XSJSJ_XS视图查询所有信息系的女学生。视图查询所有信息系的女学生。ALTER VIEW JSJ_XSAS SELECT * FROM XSDA WHERE 系名=信息 AND 性别=女 -任务1 创建和使用视

26、图第第6章章 创建视图和索引创建视图和索引42425 5依据依据JSJ_XSJSJ_XS视图为所有信息系学生的总学分加视图为所有信息系学生的总学分加2 2分。分。-查询结果SELECT * FROM JSJ_XSUPDATE JSJ_XSSET 总学分=总学分+2 -查询结果SELECT * FROM JSJ_XS-任务1 创建和使用视图第第6章章 创建视图和索引创建视图和索引43436 6依据依据JSJ_XSJSJ_XS视图,删除视图,删除3 3中新添加的记录。中新添加的记录。USE XSSELECT * FROM JSJ_XS-删除数据记录DELETE JSJ_XS WHERE 学号=20

27、0610-查询结果SELECT * FROM JSJ_XSgo-任务1 创建和使用视图第第6章章 创建视图和索引创建视图和索引44447 7修改修改AVG_XSAVG_XS视图,该视图包含每个学生的学号、姓名、课程号、课程名、成绩。视图,该视图包含每个学生的学号、姓名、课程号、课程名、成绩。ALTER VIEW AVG_XSALTER VIEW AVG_XSAS SELECT v_avg.学号,姓名,v_avg.课程编号,课程名称,平均成绩 FROM xsda,v_avg,kcxxwhere xsda.学号=V_avg.学号 and kcxx.课程编号=v_avg.课程编号go8 8删除以上建

28、立的两个视图。删除以上建立的两个视图。 DROP VIEW JSJ_XSDROP VIEW AVG_XS-任务1 创建和使用视图第第6章章 创建视图和索引创建视图和索引4545【任务目标】会使用对象资源管理器SSMS创建索引会使用T-SQL语句创建索引会修改和删除索引-任务2 创建管理索引第第6章章 创建视图和索引创建视图和索引4646【任务描述】【任务描述】按需求在XS数据库完成以下索引相关的操作。1. 在表XSDA的学号列上创建一个非聚集索引,索引名为xsda_xh_idx。2. 在表XSDA的学号和姓名列上创建一个复合索引,索引名为xsda_xh_xm_idx。3.把表XSDA索引xsd

29、a_xh_xm_idx更名为IX_xh_xm。4.使用IX_xh_xm查询名叫“王丽丽”学生信息。5. 在表KCXX表的课程编号列上创建惟一聚集索引,索引名为kc_kcbh_idx。6. 使用存储过程sp_helpindex查看XSDA表中的索引信息。7. 删除KCXX表中的索引kc_kcbh_idx。8使用存储过程sp_rename将索引“xsda_xh_idx”改名为“xs_xh”。-任务2 创建管理索引第第6章章 创建视图和索引创建视图和索引4747【任务分析】【任务分析】创建索引有使用SSMS和T-SQL语句两种方法,但同名索引只能创建一次,可以使用SSMS完成一次综合任务后,删除这些

30、索引,然后再使用T-SQL完成一次;也可以加上编号,如使用T-SQL创建索引xsda_xh_idx,使用SSMS创建索引名为xsda_xh_idx1。请练习两种方法。-任务2 创建管理索引第第6章章 创建视图和索引创建视图和索引48481 1索引的用途索引的用途索引是加快检索表中数据的方法。表的索引类似于图书的索引。在图书中,索引能帮助读者无需阅读全书就可以快速地查找到所需的信息。在数据库中,索引也允许数据库程序迅速地找到表中的数据,而不必扫描整个表。在图书中,索引就是内容和相应页码的清单。在数据库中,索引就是表中数据和相应存储位置的列表。索引可以大大减少数据库管理系统查找数据的时间。-任务2

31、 创建管理索引第第6章章 创建视图和索引创建视图和索引4949SQL Server中一个表的存储是由数据页和索引页两部分组成的。数据页用来存放除了文本和图像数据以外的所有与表的某一行相关的数据,索引页包含组成特定索引的列中的数据。索引是一个单独的、物理的数据库结构,它是某个表中一列或若干列的值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单,如表6-1所示。通常,索引页面相对于数据页面来说小得多。当进行数据检索时,系统先搜索索引页面,从索引项中找到所需要数据的指针,再直接通过指针从数据页面中读取数据。-任务2 创建管理索引第第6章章 创建视图和索引创建视图和索引5050在数据库中创建

32、索引可以极大提高系统的性能,主要表现在: 快速存取数据; 保证数据记录的惟一性; 实现表与表之间的参照完整性; 在使用分组和排序子句进行数据检索时,利用索引可以减少排序和分组的时间。-任务2 创建管理索引第第6章章 创建视图和索引创建视图和索引5151-任务2 创建管理索引表6-1 索引项的构成不过,索引虽然为提高系统性能带来了好处,但是使用索引也是有代价的。例如,使用索引存储地址将占用磁盘空间,在执行数据的插入、修改和删除操作时,为了自动维护索引,SQL Server将花费一定的时间,因此,要合理设计索引。第第6章章 创建视图和索引创建视图和索引52522 2索引分类索引分类SQL Serv

33、er中的索引按组织方式可以分为聚集索引和非聚集索引。创建聚集索引后,表中数据行的物理存储顺序与索引顺序完全相同,因此每个表只能创建一个聚集索引,而且最好在其他非聚集索引建立前建立聚集索引,以免因物理顺序的改变而使SQL Server重新构造非聚集索引。当表中保存有连续值的列时,在这些列上建立聚集索引最有效,因为当使用聚集索引快速找到一个值时,其他连续的值自然就在附近。非聚集索引不改变表中数据行的物理存储顺序,数据与索引分开存储。在非聚集索引中仅仅包含索引值和指向数据行的指针。-任务2 创建管理索引第第6章章 创建视图和索引创建视图和索引53533 3使用使用SQL Server Managem

34、ent StudioSQL Server Management Studio创建索引创建索引【例6-15】在XSDA表上为“姓名”字段添加非唯一的非聚集索引,将该索引命名为IX_xm。【例6-16】在XSDA表上为“出生日期”字段添加索引,将该索引命名为IX_birthday。-任务2 创建管理索引第第6章章 创建视图和索引创建视图和索引54544 4使用使用T-SQLT-SQL语句创建索引语句创建索引使用T-SQL语句的CREATE INDEX可以创建索引。语法格式:CREATE UNIQUECLUSTERED|NONCLUSTERED INDEX index_name ON table|v

35、iew(columnASC|DESC,.n)ON filegroup-任务2 创建管理索引第第6章章 创建视图和索引创建视图和索引5555说明:说明: UNIQUE:创建一个唯一索引,即索引项对应的值无重复值。在列包含重复值时不能建唯一索引。如果使用此项,则应确定索引所包含的列不允许NULL值,否则在使用时会经常出错。对于视图创建的聚集索引必须是UNIQUE索引。 CLUSTERED|NONCLUSTERED:指明创建聚集索引还是非聚集索引,前者表示创建聚集索引,后者表示创建非聚集索引。如果此选项缺省,则创建的索引为非聚集索引。 index_name:指明索引名,索引名在一个表中必须唯一,但在

36、数据库中不必唯一。 table|view:指定创建索引的表或视图的名称。注意,视图必须是使用SCHEMABINDING选项定义过的。 column,.n:指定建立索引的字段,参数n表示可以为索引指定多个字段。如果使用两个或两个以上的列组成一个索引,则称为复合索引。 ASC|DESC:指定索引列的排序方式是升序还是降序,默认为升序(ASC)。 ON filegroup:指定保存索引文件的数据库文件组名称。-任务2 创建管理索引第第6章章 创建视图和索引创建视图和索引5656【例6-17】为XS数据库中XSDA表的学号列创建索引。【例6-18】根据XSCJ表的学号列和课程编号列创建复合索引。【例6

37、-19】为KCXX表的课程编号列创建唯一聚集索引。-任务2 创建管理索引第第6章章 创建视图和索引创建视图和索引57571使用SQL Server Management Studio查看索引在SQL Server Management Studio的【对象资源管理器】中,依次展开【数据库】|【表】|【dbo.XSDA】|【索引】项,右击某个索引名称,选择【属性】后看到该索引的索引属性,如图6-23所示。-任务2 创建管理索引图6-23“索引属性”对话框第第6章章 创建视图和索引创建视图和索引58582 2使用使用T-SQLT-SQL语句查看索引语句查看索引可以使用T-SQL的sp_helpin

38、dex命令查看索引。语法格式:sp_helpindex objname= name【例6-20】查看表XSDA中的索引情况。-任务2 创建管理索引第第6章章 创建视图和索引创建视图和索引59593 3使用使用SQL Server Management StudioSQL Server Management Studio修改索引修改索引当索引不满足需求时,我们可以通过SQL Server Management Studio和T-SQL两种方式来修改索引。在对象资源管理器中,依次展开【数据库】|【表】,再展开该索引所属的表,最后展开【索引】。右键单击要修改的索引,然后单击【属性】,在弹出的如图6-

39、6所示的【索引属性】对话框后就可以修改索引了。具体操作较为简单,读者自己操作即可。-任务2 创建管理索引第第6章章 创建视图和索引创建视图和索引60604 4重命名索引重命名索引可以使用SSMS和T-SQL重命名索引,使用SSMS与修改索引累述,不再累述。使用T-SQL的sp_rename命令重命名索引格式如下:Exec sp_rename table_name.old_index_name,new_index_name【例6-21】使用T-SQL语句将数据库的XSDA表的索引IX_xm重命名为IX_name。-任务2 创建管理索引第第6章章 创建视图和索引创建视图和索引61615 5使用使用

40、T-SQLT-SQL语句修改索引语句修改索引语法格式:sp_rename objname = object_name , newname = new_name , objtype = object_type 说明:此处object_type取值为INDEX。【例6-22】将XS数据库中的XSDA表的索引PK_XSDA更名为PK_DATA。-任务2 创建管理索引第第6章章 创建视图和索引创建视图和索引62626 6删除索引删除索引当一个索引不再需要时,可以将其从数据库中删除,以回收它当前使用的存储空间,便于数据库中的任何对象对此空间的使用。我们可以使用SQL Server Management

41、Studio(不再阐述)和T-SQL语句来删除索引。这里只介绍使用T-SQL的DROP INDEX命令删除索引的方法。语法格式:DROP INDEX table.index|view.index,.n其中table|view:是索引列所在的表或视图;index:为要除去的索引名称。【例6-23】删除XSDA表中的索引xh_ind。-任务2 创建管理索引第第6章章 创建视图和索引创建视图和索引63631. 1. 指明引用索引指明引用索引语法格式:SELECT 字段名表 FROM 表名表WITH (INDEX(索引名)WHERE 查询条件如果不用WITH子句指明引用索引,则使用唯一的聚集索引查询。

42、【例6-24】使用IX_birthday查询出生日期在2000年以前的学生。-任务2 创建管理索引第第6章章 创建视图和索引创建视图和索引64642. 2. 使用使用SHOWPLAN_ALLSHOWPLAN_ALL分析索引分析索引建立索引的目的就是希望提高SQL Server数据查询的速度,如何才能检测查询使用了哪个索引呢?SQL Server提供了多种分析索引和查询性能的方法,下面介绍常用的SHOWPLAN_ALL方法。显示查询计划就是SQL Server将显示在执行查询的过程中连接表时采取的每个步骤,以及是否选择及选择了哪个索引,从而帮助我们分析有哪些索引被系统采用。通过在查询语句中设置S

43、HOWPLAN_ALL选项,可以选择是否让SQL Server显示查询计划。设置是否显示查询计划的命令为:SET SHOWPLAN_ALL ON|OFF或SET SHOWPLAN_TEXT ON|OFF【例6-25】使用IX_birthday查询出生日期在2000年以前的学生,并分析哪些索引被系统采用。-任务2 创建管理索引第第6章章 创建视图和索引创建视图和索引65651. 1. 在表在表XSDAXSDA的学号列上创建一个非的学号列上创建一个非聚集索引,索引名为聚集索引,索引名为xsda_xh_idxxsda_xh_idx。USE XSCREATE INDEX xsda_xh_idxON X

44、SDA(学号)GO-任务2 创建管理索引2. 2. 在表在表XSDAXSDA的学号和姓名列上创建一的学号和姓名列上创建一个复合索引,索引名为个复合索引,索引名为xsda_xh_xm_idx。USE XSCREATE INDEX xsda_xh_xm_idxON XSDA(学号,姓名)GO第第6章章 创建视图和索引创建视图和索引66663.3.把表把表XSDAXSDA索引索引xsda_xh_xm_idxxsda_xh_xm_idx更名为更名为IX_xh_xmIX_xh_xm。sp_rename xsda.xsda_xh_xm_idx,IX_xh_xm-任务2 创建管理索引4.4.使用使用IX_x

45、h_xmIX_xh_xm查询名叫查询名叫“王丽丽王丽丽”学学生信息。生信息。select *from xsda with(index(IX_xh_xm)where 姓名=王丽丽第第6章章 创建视图和索引创建视图和索引67675. 5. 在表在表KCXXKCXX表的课程编号列上创建惟表的课程编号列上创建惟一聚集索引,索引名为一聚集索引,索引名为kc_kcbh_idxkc_kcbh_idx。USE XSCREATE UNIQUE CLUSTERED INDEX kc_kcbh_idxON KCXX(课程编号)GO-任务2 创建管理索引6. 6. 使用存储过程使用存储过程sp_helpindexsp

46、_helpindex查看查看XSDAXSDA表表中的索引信息。中的索引信息。sp_helpindex XSDA第第6章章 创建视图和索引创建视图和索引68687. 7. 删除删除KCXXKCXX表中的索引表中的索引kc_kcbh_idxkc_kcbh_idx。DROP INDEX KCXX.kc_kcbh_idx-任务2 创建管理索引8 8使用存储过程使用存储过程sp_renamesp_rename将索引将索引“xsda_xh_idx”“xsda_xh_idx”改名为改名为“xs_xh”“xs_xh”。exec sp_rename XSDA.xsda_xh_idx,xs_xh第第6章章 创建视

47、图和索引创建视图和索引69691创建视图v_sale1,显示销售日期、客户编号、客户姓名、产品编号、产品名称、单价、销售数量和销售金额。2创建视图v_sale2,显示每种产品的产品编号、产品名称、单价、销售量和销售金额。3创建视图v_sale3,显示销售金额在10万元以下的产品清单。4用户需要按照CusName(客户姓名)查询客户信息,希望提高其查询速度。5用户需要按照ProName(产品名称)查询产品信息,希望提高其查询速度。6用户需要按照SaleDate(销售日期)查询销售信息,希望提高其查询速度。-实训七 为sale数据库建立视图和索引第第6章章 创建视图和索引创建视图和索引7070小结

48、小结项目主要讨论了视图的概念,视图的创建、修改与删除,以及通过视图来查询、插入、修改与删除表数据;最后介绍了索引的概念、创建、查看、删除。1索引能加快检索表中的数据。SQL Server中的索引按组织方式可以分为聚集索引和非聚集索引。2视图是数据库的一个独立的对象,视图是一个虚拟表。3视图所有的操作都可以通过SQL Server Management Studio或T-SQL语句来完成。T-SQL语句是学习的重点与难点。-实训七 为sale数据库建立视图和索引第第6章章 创建视图和索引创建视图和索引71714视图的定义操作涉及到的T-SQL命令有:创建:CREATE VIEW . view_name (column_name,) AS select_statement修改:ALTER VIEW . view_name (column_name,) AS select_statement删除:DROP VIEW view_name,n5使用视图进行数据操作的方法与表操作所使用的命令语句基本相同,只需要在语句中将表名改为视图名就可以了。但一定要注意,在做插入、修改与删除操作时,每一次新操作只能影响一个基表中的数据。-实训七 为sale数据库建立视图和索引第第6章章 创建视图和索引创建视图和索引

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com