资源描述
单元单元6 6 创建视图和索引创建视图和索引引言引言视视图图(View)是是一一种种基基本本数数据据库库对对象象,为为用用户户提提供供了了一一个个可可以以检检索索数数据据表表中中数数据据的的方方式式。使使用用视视图图可可以以简简化化查查询操作、提高数据安全性等。询操作、提高数据安全性等。索索引引是是另另一一个个重重要要的的数数据据库库对对象象,通通过过索索引引可可以以快快速速访访问表中的记录,大大提高数据库的查询性能。问表中的记录,大大提高数据库的查询性能。【学习任务学习任务】任务任务1 创建视图创建视图任务任务2 利用视图简化查询操作利用视图简化查询操作任务任务3 通过视图更新数据通过视图更新数据任务任务4 管理和维护视图管理和维护视图任务任务5 创建索引创建索引任务任务6 管理和维护索引管理和维护索引【学习目标学习目标】理解视图概念和优点;理解视图概念和优点;能灵活使用图形工具及能灵活使用图形工具及CREATE VIEWCREATE VIEW语句创建视语句创建视图;图;能使用视图对表数据操作:查询、添加、修改、能使用视图对表数据操作:查询、添加、修改、删除等;删除等;能使用视图简化查询操作;能使用视图简化查询操作;理解索引的优缺点和分类;理解索引的优缺点和分类;能灵活使用图形工具及能灵活使用图形工具及CREATE INDEXCREATE INDEX语句创建索语句创建索引。引。任务任务1任务任务1 1 创建视图创建视图【任务提出任务提出】单元单元5中介绍的数据操作实现了对表数据的查询和更新。中介绍的数据操作实现了对表数据的查询和更新。除了直接对表数据进行查询和更新外,还可以使用视图实除了直接对表数据进行查询和更新外,还可以使用视图实现数据查询和更新。现数据查询和更新。使用视图可以大大简化数据查询操作使用视图可以大大简化数据查询操作。尤其是对于实现复杂查询,视图非常有用。尤其是对于实现复杂查询,视图非常有用。【任务分析任务分析】在创建视图之前须先了解视图的有关概念。然后创建视图,在创建视图之前须先了解视图的有关概念。然后创建视图,再通过视图进行查询、更新操作。再通过视图进行查询、更新操作。【相关知识与技能相关知识与技能】1.视图概念视图概念通过将定义好的查询作为一个视图对象存储在数据库通过将定义好的查询作为一个视图对象存储在数据库中。中。视图是由表派生的,派生表被称为视图的基本表,视图是由表派生的,派生表被称为视图的基本表,简称基表。简称基表。视图创建好后,可以和表一样,视图创建好后,可以和表一样,可以对它进行查询和可以对它进行查询和更新,也可以在视图的基础上继续创建视图更新,也可以在视图的基础上继续创建视图。视图也。视图也称为称为虚表虚表。【相关知识与技能相关知识与技能】2使用图形工具创建视图使用图形工具创建视图(1)选择)选择“新建视图新建视图”命令。命令。(2)选择视图的来源。)选择视图的来源。(3)选择视图包含的列(即输出的列)。)选择视图包含的列(即输出的列)。(4)设置连接和查询条件。)设置连接和查询条件。(5)预览视图返回的结果集。)预览视图返回的结果集。(6)保存视图。)保存视图。【注意注意】在同一数据库中,视图名不能和表名相同。在同一数据库中,视图名不能和表名相同。【相关知识与技能相关知识与技能】3CREATE VIEW语句语句 CREATE VIEW 视图名视图名(视图列名视图列名1,视图列名视图列名n)WITH ENCRYPTION AS SELECT 语句语句 WITH CHECK OPTION【相关知识与技能相关知识与技能】4视图作用视图作用(1)为用户集中提取数据)为用户集中提取数据(2)隐蔽数据库的复杂性)隐蔽数据库的复杂性(3)简化数据库用户权限管理)简化数据库用户权限管理(4)方便数据的交换)方便数据的交换【任务实施任务实施】1使用图形工具创建视图使用图形工具创建视图【例例1】创建视图创建视图BoyInfo,该视图中包含班级编号为,该视图中包含班级编号为200901001的班中所有男生的详细信息。的班中所有男生的详细信息。【练习练习1】创建视图创建视图CourseInfo,该视图中包含所有课程,该视图中包含所有课程名称中含有名称中含有数据库数据库的课程的课程编号和课程名称。的课程的课程编号和课程名称。【例例2】创建视图创建视图CourseDetail,该视图中包含,该视图中包含Course表表和和Score表中的所有列,但去除重复列。完成的视图设计表中的所有列,但去除重复列。完成的视图设计器窗口如图器窗口如图6-5所示。所示。【例例3】创建视图创建视图Details,该视图中包含,该视图中包含Class、Student、Course表和表和Score表中的所有列,但去除重复列。表中的所有列,但去除重复列。【任务实施任务实施】【例例4】创建视图创建视图EachClassNumber,该视图中包含各,该视图中包含各班级的学生人数。班级的学生人数。【练习练习2】创建视图创建视图EachCourseScore,该视图中包含各,该视图中包含各门课程的课程名称、平时成绩的平均分和期末成绩的平均门课程的课程名称、平时成绩的平均分和期末成绩的平均分信息。分信息。【例例5】创建视图创建视图FailInfo,该视图中包含期末成绩有不及,该视图中包含期末成绩有不及格的学生的学号。完成的视图设计器窗口如图格的学生的学号。完成的视图设计器窗口如图6-10所示。所示。【任务实施任务实施】2使用使用CREATE VIEW语句创建视图语句创建视图【例例6】创建视图创建视图ComputerInfo,该视图中包含计算机应,该视图中包含计算机应用技术专业学生的学号和姓名。用技术专业学生的学号和姓名。CREATE VIEW ComputerInfo AS SELECT Sno,Sname FROM Class JOIN Student ON Class.ClassNo=Student.ClassNo WHERE Specialty=计算机应用技术计算机应用技术【任务实施任务实施】【例例7】创建视图创建视图StudentAge,该视图中包含所有学生的,该视图中包含所有学生的学号、姓名和年龄。学号、姓名和年龄。CREATE VIEW AS SELECT Sno,Sname,YEAR(GETDATE()-YEAR(Birth)年龄年龄 FROM Student【任务实施任务实施】【练习练习3】创建视图创建视图GirlInfo,该视图中包含所有女生的详,该视图中包含所有女生的详细信息(细信息(Student表中的所有列)。迫使通过视图执行的表中的所有列)。迫使通过视图执行的所有数据修改语句必须符合视图定义中设置的条件。所有数据修改语句必须符合视图定义中设置的条件。【任务总结任务总结】创建视图其实是将数据查询作为一个视图对象保存起来。创建视图其实是将数据查询作为一个视图对象保存起来。视图可看做是一个能把焦点定在用户感兴趣的数据上的监视图可看做是一个能把焦点定在用户感兴趣的数据上的监视器。视器。视图中没有存储数据,在数据库中,表是唯一存储视图中没有存储数据,在数据库中,表是唯一存储数据的数据库对象。数据的数据库对象。建立视图有很多作用,具体在后面的建立视图有很多作用,具体在后面的任务中介绍。任务中介绍。【拓展练习拓展练习】1创建视图创建视图LiveDetail,该视图中包含,该视图中包含Dorm表和表和Live表表中的所有列,但去除重复列。中的所有列,但去除重复列。2创建视图创建视图CheckDetail,该视图中包含,该视图中包含Dorm表、表、Live表和表和CheckHealth表中的所有列,但去除重复列。表中的所有列,但去除重复列。3创建视图创建视图DormDetail,该视图中包含,该视图中包含Dorm表、表、Live表、表、CheckHealth表、表、Class和和Student表中的所有列,表中的所有列,但去除重复列。但去除重复列。任务任务2任务任务2 2 利用视图简化查询操作利用视图简化查询操作【任务提出任务提出】视图最大的优点是简化查询操作,那到底如何简化查询操视图最大的优点是简化查询操作,那到底如何简化查询操作呢?作呢?【任务分析任务分析】视图创建好后,可以和表一样,可以对它进行查询。在大视图创建好后,可以和表一样,可以对它进行查询。在大多数的情况下,用户查询的数据可能存储在多个表中,查多数的情况下,用户查询的数据可能存储在多个表中,查询起来比较繁琐。此时,可以将多个表中的数据集中在一询起来比较繁琐。此时,可以将多个表中的数据集中在一个视图中,然后通过对视图的查询查看多个表中的数据,个视图中,然后通过对视图的查询查看多个表中的数据,从而大大简化数据的查询操作。从而大大简化数据的查询操作。【任务实施任务实施】【例例1】查询所有年龄小于查询所有年龄小于20岁的学生的学号、姓名和年岁的学生的学号、姓名和年龄。龄。SELECT *FROM StudentAge WHERE 年龄年龄20【例例2】查询所有学生的学号、姓名、班级名称、选修的查询所有学生的学号、姓名、班级名称、选修的课程编号及平时成绩。课程编号及平时成绩。SELECT Sno,Sname,ClassName,Cno,Uscore FROM Details【任务实施任务实施】【练习练习1】查询班级编号为查询班级编号为200901001班学生的基本信息班学生的基本信息及其选课信息,结果包含学号、姓名、性别、课程编号、及其选课信息,结果包含学号、姓名、性别、课程编号、课程名称。课程名称。(建议对视图建议对视图Details进行查询进行查询)【练习练习2】查询班级编号为查询班级编号为200901001的班级人数。的班级人数。(建建议对视图议对视图EachClassNumber进行查询进行查询)【任务总结任务总结】多表连接查询是关系数据库中最重要的查询。而多表连接多表连接查询是关系数据库中最重要的查询。而多表连接查询往往比较复杂,使用视图可以大大简化查询。查询往往比较复杂,使用视图可以大大简化查询。【拓展练习拓展练习】1查询所有学生的详细住宿信息,结果包含学号查询所有学生的详细住宿信息,结果包含学号Sno、宿舍编号宿舍编号DormNo、楼栋、楼栋Build、房间号、房间号RoomNo、入住、入住日期日期InDate。2查询住在查询住在龙川北苑龙川北苑04南南楼栋(即字段楼栋(即字段Build的值为的值为龙龙川北苑川北苑04南南)的学生的学号)的学生的学号Sno和宿舍编号和宿舍编号DormNo。3查询所有宿舍在查询所有宿舍在2010年年10月份的卫生检查情况,结果月份的卫生检查情况,结果包含楼栋包含楼栋Build、宿舍编号、宿舍编号DormNo、房间号、房间号RoomNo、检查时间检查时间CheckDate、检查人员、检查人员CheckMan、检查成绩、检查成绩Score、存在问题、存在问题Problem。4查询查询龙川北苑龙川北苑04南南楼栋各宿舍的卫生检查平均成绩,楼栋各宿舍的卫生检查平均成绩,结果包含宿舍编号、平均成绩。结果包含宿舍编号、平均成绩。【拓展练习拓展练习】5查询查询龙川北苑龙川北苑04南南楼栋的宿舍在楼栋的宿舍在2010年年10月份的卫月份的卫生检查情况,结果包含宿舍编号生检查情况,结果包含宿舍编号DormNo、房间号、房间号RoomNo、检查时间、检查时间CheckDate、检查人员、检查人员CheckMan、检查成绩、检查成绩Score、存在问题、存在问题Problem。6查询查询龙川北苑龙川北苑04南南楼栋的宿舍在楼栋的宿舍在2010年年10月份的卫月份的卫生检查成绩不及格的宿舍个数。生检查成绩不及格的宿舍个数。7查询所有学生的基本信息及其住宿信息,结果包含学查询所有学生的基本信息及其住宿信息,结果包含学号号Sno、姓名、姓名Sname、性别、性别Sex、宿舍编号、宿舍编号DormNo、楼、楼栋栋Build、房间号、房间号RoomNo、入住日期、入住日期InDate。8查询姓名为查询姓名为王康俊王康俊学生的住宿信息,结果包含宿舍编学生的住宿信息,结果包含宿舍编号号DormNo、房间号、房间号RoomNo、入住日期、入住日期InDate。【拓展练习拓展练习】9查询所有学生的详细信息及其住宿信息,结果包含学查询所有学生的详细信息及其住宿信息,结果包含学号号Sno、姓名、姓名Sname、性别、性别Sex、班级编号、班级编号ClassNo、班、班级名称级名称ClassName、宿舍编号、宿舍编号DormNo、楼栋、楼栋Build、房、房间号间号RoomNo、入住日期、入住日期InDate。10查询查询计算机应用技术计算机应用技术专业所有学生的入住信息,结专业所有学生的入住信息,结果包含学号果包含学号Sno、姓名、姓名Sname、性别、性别Sex、班级编号、班级编号ClassNo、班级名称、班级名称ClassName、宿舍编号、宿舍编号DormNo、楼栋楼栋Build、房间号、房间号RoomNo、入住日期、入住日期InDate。查询结。查询结果按照班级编号升序排列,同班的按照学号升序排列。果按照班级编号升序排列,同班的按照学号升序排列。任务任务3任务任务3 3 通过视图更新数据通过视图更新数据【任务提出任务提出】视图创建好后,可以和表一样,可以对它进行查询和更新。视图创建好后,可以和表一样,可以对它进行查询和更新。更新操作包括插入(更新操作包括插入(INSERT)、修改()、修改(UPDATE)和删)和删除(除(DELETE)操作。)操作。【任务分析任务分析】虽说可以对视图进行更新,但由于视图是不实际存储数据虽说可以对视图进行更新,但由于视图是不实际存储数据的虚表,因此对视图的更新,的虚表,因此对视图的更新,最终要转换为对表的更新。最终要转换为对表的更新。如果不能转换为对表的更新,则该视图更新操作不能执行。如果不能转换为对表的更新,则该视图更新操作不能执行。【任务实施任务实施】【例例1】将(单元将(单元6任务任务1例例1)创建的视图)创建的视图BoyInfo中中倪骏同学的出生年月修改为倪骏同学的出生年月修改为1991年年8月月16日。日。UPDATE BoyInfo SET Birth=1991/8/16 WHERE Sname=倪骏倪骏转换为对基本表转换为对基本表Student表的修改。表的修改。UPDATE Student SET Birth=1991/8/16 WHERE Sname=倪骏倪骏【任务实施任务实施】【例例2】往(单元往(单元6任务任务1例例2)创建的视图)创建的视图CourseDetail中添加一条记录。中添加一条记录。【注意注意】通过视图更新数据时,需要注意以下几点:通过视图更新数据时,需要注意以下几点:(1)通过视图更新数据时,)通过视图更新数据时,必须要能转换为对基表的更新必须要能转换为对基表的更新,即必须符合更新基表的条件。即必须符合更新基表的条件。(2)修改视图中的数据时,)修改视图中的数据时,不能同时修改两个或者多个基不能同时修改两个或者多个基表表。若要对基于两个或多个基表的视图中的数据进行修改,。若要对基于两个或多个基表的视图中的数据进行修改,每次修改都必须只能影响一个基表。每次修改都必须只能影响一个基表。(3)不能修改那些通过计算得到的字段不能修改那些通过计算得到的字段,例如包含计算值,例如包含计算值或者集函数的字段。或者集函数的字段。【任务实施任务实施】【例例3】往往GirlInfo表中添加一条男生记录。表中添加一条男生记录。WITH CHECK OPTION子句子句:通过视图增、删、改:通过视图增、删、改数据时,系统将检查视图定义中的条件,若不满足此数据时,系统将检查视图定义中的条件,若不满足此条件,则拒绝执行该操作。条件,则拒绝执行该操作。【任务总结任务总结】视图创建好后,可以和表一样,可以对它进行查询和更新。视图创建好后,可以和表一样,可以对它进行查询和更新。更新操作包括插入(更新操作包括插入(INSERT)、修改()、修改(UPDATE)和删)和删除(除(DELETE)操作。但须注意的是对视图的更新是受限)操作。但须注意的是对视图的更新是受限的,因为视图是不实际存储数据的虚表,因此对视图的更的,因为视图是不实际存储数据的虚表,因此对视图的更新,最终要转换为对表的更新。新,最终要转换为对表的更新。任务任务4任务任务4 4 管理和维护视图管理和维护视图【任务提出任务提出】视图的管理和维护包括查看视图的定义、查看视图与其他视图的管理和维护包括查看视图的定义、查看视图与其他数据库对象的依赖关系、修改视图、重命名视图、删除视数据库对象的依赖关系、修改视图、重命名视图、删除视图等。图等。【任务分析任务分析】视图的管理和维护可使用视图的管理和维护可使用SSMS的图形工具或使用的图形工具或使用SQL语语句实现。句实现。【任务实施任务实施】1导出视图数据导出视图数据【例例1】将(任务将(任务1例例4创建)视图创建)视图EachClassNumber(该视图中包含各班级的学生人数)(该视图中包含各班级的学生人数)中的数据导出到中的数据导出到D:汇总汇总.xls工作薄中。工作薄中。【练习练习1】将(任务将(任务1练习练习2创建)视图创建)视图EachCourseScore(该视图中包含各门课程的课程名称、(该视图中包含各门课程的课程名称、平时成绩的平均分和期末成绩的平均分信息)中的数据导平时成绩的平均分和期末成绩的平均分信息)中的数据导出到出到D:汇总汇总.xls工作薄中。工作薄中。【任务实施任务实施】2查看视图的定义信息查看视图的定义信息(1)使用)使用SSMS的图形工具查看的图形工具查看(2)使用)使用sp_helptext查看查看 EXECUTE sp_helptext 视图名视图名【练习练习2】分别使用分别使用SQL Server Management Studio的的图形工具和图形工具和sp_helptext查看视图查看视图CourseDetail和视图和视图Details的定义信息。的定义信息。【任务实施任务实施】3查看视图与其他对象的依赖关系查看视图与其他对象的依赖关系(1)使用)使用SSMS的图形工具查看的图形工具查看(2)使用)使用sp_depends查看查看 EXECUTE sp_depends 视图名视图名【练习练习3】分别使用分别使用SQL Server Management Studio的的图形工具和图形工具和sp_depends查看视图查看视图CourseDetail和视图和视图Details与其他对象的依赖关系。与其他对象的依赖关系。【任务实施任务实施】4修改视图的定义修改视图的定义(1)使用)使用SSMS的图形工具修改视图的定义的图形工具修改视图的定义(2)使用)使用ALTER VIEW语句修改视图定义语句修改视图定义 ALTER VIEW 视图名视图名 WITH ENCRYPTION AS SELECT 语句语句 WITH CHECK OPTION【练习练习4】使用使用ALTER VIEW语句修改视图语句修改视图BoyInfo(任(任务务1例例1创建),对视图的定义进行加密。并使用创建),对视图的定义进行加密。并使用sp_helptext查看该视图的定义信息。查看该视图的定义信息。【任务实施任务实施】5重命名视图重命名视图(1)使用)使用SSMS的图形工具重命名视图的图形工具重命名视图(2)使用)使用sp_rename重命名视图重命名视图 EXECUTE sp_rename 原视图名原视图名,新视图名新视图名【练习练习5】重命名(任务重命名(任务1例例5创建)视图创建)视图FailInfo,修改,修改后的视图名为后的视图名为xushanchu。【任务实施任务实施】6删除视图删除视图(1)使用)使用SSMS的图形工具删除视图的图形工具删除视图(2)使用)使用DROP VIEW语句删除视图语句删除视图 DROP VIEW 视图名视图名1,视图名视图名n【练习练习6】删除上面练习删除上面练习4重命名后的视图重命名后的视图xushanchu。【任务总结任务总结】通过对视图加密来保护视图的安全性。视图的维护可使用通过对视图加密来保护视图的安全性。视图的维护可使用SSMS的图形工具或使用的图形工具或使用SQL语句实现。语句实现。任务任务5 任务任务5 5 创建索引创建索引【任务提出任务提出】用户对数据库的操作最频繁的是数据查询。一般情况下,用户对数据库的操作最频繁的是数据查询。一般情况下,数据库在进行查询操作时需要对整个表进行数据搜索。当数据库在进行查询操作时需要对整个表进行数据搜索。当表中的数据很多时,按顺序搜索数据就需要很长的时间,表中的数据很多时,按顺序搜索数据就需要很长的时间,这就造成了服务器的资源浪费。为了提高检索数据的能力,这就造成了服务器的资源浪费。为了提高检索数据的能力,数据库引入了索引机制。数据库引入了索引机制。【任务分析任务分析】若要在一本书中查找所需信息,应首先查找书的目录,找若要在一本书中查找所需信息,应首先查找书的目录,找到该信息所在的页码,然后再查阅该页码的信息,无须阅到该信息所在的页码,然后再查阅该页码的信息,无须阅读整本书。读整本书。在数据库中查找数据也一样,为了加快查询速度,创建索在数据库中查找数据也一样,为了加快查询速度,创建索引,通过搜索索引找到特定的值,然后跟随指针到达包含引,通过搜索索引找到特定的值,然后跟随指针到达包含该值的行,从而提高数据检索速度。本任务先理解该值的行,从而提高数据检索速度。本任务先理解SQL Server 2005的数据访问方法,然后理解创建索引的优缺的数据访问方法,然后理解创建索引的优缺点和索引分类,再来根据实际需求创建和维护索引。点和索引分类,再来根据实际需求创建和维护索引。【相关知识与技能相关知识与技能】1数据的访问数据的访问(1)表扫描法)表扫描法当当SQL Server 2005执行表扫描时,它从表的第一行开执行表扫描时,它从表的第一行开始进行逐行查找,直到找到符合查询条件的行。始进行逐行查找,直到找到符合查询条件的行。(2)索引法)索引法先通过搜索索引树来查找所需行的存储位置,然后通先通过搜索索引树来查找所需行的存储位置,然后通过查找的结果提取所需的行。过查找的结果提取所需的行。【相关知识与技能相关知识与技能】2创建索引的优缺点创建索引的优缺点(1)创建索引的好处)创建索引的好处1)加快数据查询。)加快数据查询。2)加快表的连接、排序和分组工作)加快表的连接、排序和分组工作(2)创建索引的不足)创建索引的不足1)创建索引要花费时间和占用存储空间。)创建索引要花费时间和占用存储空间。2)创建索引会减慢数据修改速度。)创建索引会减慢数据修改速度。【相关知识与技能相关知识与技能】3索引分类索引分类(1)聚集索引和非聚集索引)聚集索引和非聚集索引聚集索引会对表进行物理排序,聚集索引中,表中各聚集索引会对表进行物理排序,聚集索引中,表中各行的物理顺序与索引表的顺序相同。一张表只能包含行的物理顺序与索引表的顺序相同。一张表只能包含一个聚集索引。与新华字典中的按拼音检索类似一个聚集索引。与新华字典中的按拼音检索类似 非聚集索引不会对表进行物理排序。与新华字典中的非聚集索引不会对表进行物理排序。与新华字典中的按笔画检索类似。按笔画检索类似。(2)唯一索引和非唯一索引)唯一索引和非唯一索引唯一索引不允许两行具有相同的索引值,包括不能有唯一索引不允许两行具有相同的索引值,包括不能有两个空值两个空值NULL【相关知识与技能相关知识与技能】4使用图形工具创建索引使用图形工具创建索引5CREATE INDEX语句语句 CREATE UNIQUECLUSTERED|NONCLUSTERED INDEX 索引名索引名 ON 表名(列名表名(列名1,列名列名2)【任务实施任务实施】1使用图形工具创建索引使用图形工具创建索引【练习练习1】查看查看School数据库表中的现有索引,观察索引数据库表中的现有索引,观察索引的索引名称、索引类型等。的索引名称、索引类型等。【练习练习2】在在Student表的表的Sname列上创建非聚集索引,列上创建非聚集索引,索引名称为:索引名称为:IX_Student_Sname。【任务实施任务实施】2使用使用CREATE INDEX语句创建索引语句创建索引【例例1】在在Class表的表的ClassName列上创建唯一索引,索列上创建唯一索引,索引名称为:引名称为:IX_Class_ClassName。CREATE UNIQUE INDEX IX_Class_ClassName ON Class(ClassName)【练习练习3】在在Course表的表的Cname列上创建非聚集索引,列上创建非聚集索引,索引名称为:索引名称为:IX_Course_Cname。【练习练习4】在在Course表的表的Credit列上创建非聚集索引,索列上创建非聚集索引,索引名称为:引名称为:IX_Course_Credit。【任务总结任务总结】创建索引可以加快数据的检索速度。一张表上只能创建一创建索引可以加快数据的检索速度。一张表上只能创建一个聚集索引,但可以创建多个非聚集索引。个聚集索引,但可以创建多个非聚集索引。SQL Server自动会在主键列上建立聚集唯一索引,在唯一约束列上建自动会在主键列上建立聚集唯一索引,在唯一约束列上建立唯一索引。立唯一索引。【拓展练习拓展练习】根据实际需求在根据实际需求在Dorm表、表、Live表、表、CheckHealth表上创表上创建索引。建索引。任务任务6 任务任务6 6 管理和维护索引管理和维护索引【任务提出任务提出】索引的管理和维护包括查看索引信息、重命名索引、删除索引的管理和维护包括查看索引信息、重命名索引、删除索引等。索引等。【任务分析任务分析】索索引引的的管管理理和和维维护护可可使使用用SSMS的的图图形形工工具具或或使使用用SQL语语句实现。句实现。【任务实施任务实施】1查看索引信息查看索引信息(1)使用)使用SSMS的图形工具查看的图形工具查看右击要查看的索引,在弹出的快捷菜单中选择右击要查看的索引,在弹出的快捷菜单中选择“属性属性”命令。命令。(2)使用)使用sp_helpindex查看查看EXECUTE sp_helpindex 表名表名【练习练习1】分别使用分别使用SSMS的图形工具和的图形工具和sp_helpindex查查看看school数据库中各表上的索引信息。数据库中各表上的索引信息。【任务实施任务实施】2重命名索引重命名索引(1)使用)使用SSMS的图形工具重命名索引的图形工具重命名索引右击要重命名的索引,在弹出的快捷菜单中选择右击要重命名的索引,在弹出的快捷菜单中选择“重重命名命名”命令。命令。(2)使用)使用sp_rename重命名索引重命名索引EXECUTE sp_rename 表名表名.索引名索引名,新索引名新索引名【练习练习2】分别使用分别使用SSMS的图形工具和的图形工具和sp_rename重命重命名名School数据库中的索引。数据库中的索引。【任务实施任务实施】3删除索引删除索引(1)使用)使用SSMS的图形工具删除索引的图形工具删除索引右击要删除的索引,在弹出的快捷菜单中选择右击要删除的索引,在弹出的快捷菜单中选择“删除删除”命令。命令。(2)使用)使用DROP INDEX语句删除索引语句删除索引DROP INDEX 表名索引名表名索引名,n【注意注意】不能删除由主键约束或唯一约束创建的索引。不能删除由主键约束或唯一约束创建的索引。【练习练习3】使用使用SSMS的图形工具或的图形工具或DROP INDEX语句删语句删除除Student表上的索引。表上的索引。【任务总结任务总结】索引的管理和维护较简单,记住:不能删除由主键约束或索引的管理和维护较简单,记住:不能删除由主键约束或唯一约束创建的索引。这些索引必须通过删除主键约束或唯一约束创建的索引。这些索引必须通过删除主键约束或唯一约束,由系统自动删除。唯一约束,由系统自动删除。【拓展知识拓展知识】获取查询时间:获取查询时间:DECLARE d datetime SET d=getdate()SELECT查询语句查询语句 SELECT datediff(ms,d,getdate()
展开阅读全文