《数据库基础与项目实训教程——基于SQLServer 教学课件 ppt 作者 虞江峰 第7章》由会员分享,可在线阅读,更多相关《数据库基础与项目实训教程——基于SQLServer 教学课件 ppt 作者 虞江峰 第7章(77页珍藏版)》请在金锄头文库上搜索。
1、第7章 索引和视图,知识导航,学习目标,了解: 索引的概念 视图的概念 理解: 索引的分类和特点 视图的特点 掌握: 索引的创建和查看方法 索引的编辑和删除方法 视图的创建和维护的方法 通过视图访问数据的方法,索引和视图,7.1 索引 7.2 视图,7.1索 引,任务描述:SQL Server 2000的性能受许多因素的影响,有效地设计索引可以提高性能。在数据库中,索引使数据库程序无需对整个表进行扫描,就可以在其中找到所需数据。SQL Server 2000的索引是一种物理结构,它能够提供一种以一列或多列的值为基础迅速查找表中行的能力。 任务目标:了解索引的概念;掌握管理和维护索引的方法。,7
2、.1索 引,7.1.1 索引概述 索引是一个单独的、物理的数据库结构,是某个表中一列或若干列的集合以及相应的标识这些值所在数据页的逻辑指针清单。索引是依赖于表建立的,提供了数据库中编排表中数据的内部方法,7.1索 引,创建索引的优点如下。 1)加速数据检索。如果一个表建立了索引,在数据检索时,SQL Server首先搜索这个索引,找到和搜索值相匹配的索引值,然后按照索引值对应的位置信息确定表中数据行的位置。由于索引进行了分类,并且行和列比较少,所以对索引的搜索速度很快。同样,通过索引也能够对行进行快速删除。 2)加快表与表之间的连接。在建立表之间的连接时需要进行数据检索,建立索引后,其数据检索
3、速度会加快,从而也就加快了表与表之间的连接。 3)在使用Order by和Group by等子句进行数据检索时,可以减少分组和排序的时间。,7.1索 引,4)有利于SQL Server对查询进行优化。在执行查询时,SQL Server都会对查询进行优化。但是,优化依赖于索引起作用,它决定到底选择哪些索引可以使得该查询执行最快。 5)强制实施行的唯一性。如果创建索引时定义唯一性,可以保证表中每行数据的唯一性。,7.1索 引,7.1.2 索引的分类 按照索引值的特点分类,可以将索引分为唯一索引和非唯一索引 按照索引结构的特点分类,可以将索引分为聚集索引和非聚集索引。,7.1索 引,7.1.3 索引
4、的操作 在SQL Server中索引的基础操作包括创建索引、查看索引、编辑索引、删除索引等,对其操作的方法可以通过使用企业管理器,也可以通过T-SQL语句来实现。,7.1索 引,1创建索引 创建索引的方法有三种,分别是使用企业管理器、使用索引向导和T_SQL语句。 (1)使用企业管理器创建索引 1)在桌面上单击“开始”“程序”“Microsoft SQL Server”“企业管理器”命令,打开企业管理器。,7.1索 引,2)展开“SQL Server组”,再展开要为其创建数据的“服务器”节点。展开要创建索引的数据库“RtvuStu”,在右边的列表中用鼠标右键单击要创建索引的表“Student”
5、,在弹出的快捷菜单中选择“所有任务”“管理索引”命令,如图7-1所示。,图7-1 使用企业管理器创建索引,7.1索 引,3)打开“管理索引”对话框,如图7-2所示。顶部的“数据库”和“表/视图”文本框用来选择数据库和要创建索引的表,下面的列表框显示了选中表的索引,底部的按钮用来对索引进行编辑、删除等操作。,图7-2 “管理索引”对话框,7.1索 引,4)单击“新建”按钮,弹出如图7-3所示的“新建索引”对话框。在“索引名称”文本框中输入索引名称“IQ_Sname”,选择用于创建索引的列Sname,“排序次序”复选框处于选中状态,表示索引以降序排列。,图7-3 “新建索引”对话框,7.1索 引,
6、(2)使用索引向导创建索引 1)打开企业管理器,展开数据库文件夹,执行“工具”“向导”命令,打开“选择向导”对话框,选择“创建索引向导”选项,如图7-4所示,单击“确定”按钮,启动创建索引向导,如图7-5所示。,7.1索 引,图7-4 “选择向导”对话框 图7-5 “欢迎使用创建索引向导”对话框,7.1索 引,2)单击“下一步”按钮,打开“选择数据库和表”对话框。在“数据库名称”下拉列表框中选择数据库“RtvuStu”,在“对象名”下拉列表框中选择要创建索引的表,这里选择“Student”表,如图7-6所示,图7-6 “选择数据库和表”对话框,7.1索 引,3)单击“下一步”按钮,打开如图7-
7、7所示的“当前的索引信息”对话框。其中以表格的形式列出了选定对象中已有索引的基本信息,包括索引名称以及该索引所涉及的列名等。,图7-7 “当前的索引信息”对话框,7.1索 引,4)单击“下一步”按钮,打开“选择列”对话框,如图7-8所示。在这个窗口中选中要在其上创建索引的列,并确定排序的规则。,图7-8 “选择列”对话框,7.1索 引,5)选择要创建索引的列后,单击“下一步”按钮,打开“指定索引选项”对话框,如图7-9所示。,图7-9 “指定索引选项”对话框,7.1索 引,6)单击“下一步”按钮,打开“正在完成创建索引向导”对话框,如图7-10所示。 7)最后,单击“完成”按钮关闭提示窗口,整
8、个创建索引工作结束。,图7-10 “正在完成创建索引向导”窗口,7.1索 引,(3)使用T-SQL语句创建索引 在T-SQL语句中,可以使用Create Index语句建立索引,其语法格式如下: Create Unique Clustered|Nonclustered Index 索引名 On 表名(字段名Asc|Desc,n) With 索引选项 ,n On 文件组,7.1索 引,【例7-1】 在“Student”表上建立一个名为“IQ_Student”的非聚集复合索引,该索引是基于“姓名”列和“出生日期”列创建的复合索引,建立的索引对姓名列Sname 降序排列,出生日期列Birth升序排列
9、。 在查询分析器中输入如下T-SQL语句: Use RtvuStu Go Create Nonclustred Index IQ_Student on Student (Sname desc,birth ),7.1索 引,2查看索引 在表中创建索引后,可以通过企业管理器来查看索引,也可通过T-SQL语句来查看索引。 (1)使用企业管理器查看索引 1)打开企业管理器,展开相应的服务器和数据库“RtvuStu”,在右边的列表中用鼠标右键单击要查看的索引所在的表“Student”,在弹出的快捷菜单中选择“所有任务”“管理索引”菜单项,打开“管理索引”对话框。如图7-11所示,在对话框中可以查看表上所
10、有的索引信息。,7.1索 引,图7-11 “管理索引”对话框 2)单击“编辑”按钮,对已存在的索引进行编辑修改。,7.1索 引,(2)使用系统存储过程查看 Sp_helpindex系统存储过程返回表中的所有索引信息,其语法格式如下: sp_helpindexobjname=name 其中,objname= name子句为指定当前数据库中的表的名称。 【例7-2】 查看表“Student”的索引。 在查询分析器中输入如下T-SQL语句: Use RtvuStu Go Exce sp_helpindex student,7.1索 引,3编辑索引 在表中创建好索引后,有时需要对其进行修改,可通过企业
11、管理器和T-SQL语句来实现。 (1)使用企业管理器编辑索引 1)打开企业管理器,展开相应的服务器和数据库“RtvuStu”,在右边的列表中用鼠标右键单击索引所在的表“Student”,在弹出的快捷菜单中选择“所有任务”“管理索引”命令,打开如图7-11所示的“管理索引”对话框。,7.1索 引,2)在“管理索引”对话框的“现有索引”中选择需要编辑的索引,单击“编辑”按钮,弹出“编辑现有索引”对话框,如图7-12所示。,图7-12 “编辑现有索引”对话框,7.1索 引,3)在“编辑现有索引”对话框中,可以修改索引的大部分设置,还可以单击“编辑SQL”按钮,在SQL脚本编辑框中编辑、测试和运行索引
12、的SQL脚本。,7.1索 引,(2)使用系统存储过程更改索引 可以使用系统存储过程Sp_rename更改索引的名称,其语法格式如下: sp_rename Oldname , Newname,Object_type,7.1索 引,【例7-3】 更改“Student”表中索引stu名称为“stu_index”。 在查询分析器中输入如下T-SQL语句: Use RtvuStu Go Exec sp_rename student.stu,stu_index,index,7.1索 引,4删除索引 (1)使用企业管理器删除索引 1)打开企业管理器,展开相应的服务器和数据库“RtvuStu”,在右边的列表中
13、用鼠标右键单击索引所在的表“Student”,在弹出的快捷菜单中选择“所有任务”“管理索引”菜单项,打开如图7-11所示的“管理索引”对话框。 2)在列表框中选择索引,单击“管理索引”对话框底部的“删除”按钮,系统弹出一个确认对话框,单击“确定”按钮即可删除选择的索引。,7.1索 引,(2)使用T-SQL语句删除索引 T-SQL删除索引语句的语法格式如下: Drop Index Table_name.Index_name,n,7.1索 引,【例7-4】 删除“Student”表中名为stu的索引。 在查询分析器中输入如下T-SQL语句: Use RtvuStu Go Drop Index st
14、udent.stu,7.2 视 图,任务描述:本任务将讲述在“RtvuStu”数据库中创建和管理视图的方法,方便不同用户进行数据查询。 任务目标:了解视图的概念;掌握管理和维护视图的方法,7.2 视 图,7.2.1 视图概述 视图中定义的是对一个或多个基本表的查询语句,其本身并不保存数据,所有的数据都存储在数据库的表中。视图就好比一面镜子,所呈现的都是用户感兴趣的虚像,因此又被称为虚表。,7.2 视 图,视图主要有如下特点: 1)为用户集中数据。 2)简化对数据的操作。 3)简化用户权限管理。 4)便于数据共享。 5)导出数据。,7.2 视 图,7.2.2 视图的操作 在SQL Server中
15、,对视图的操作分为创建和管理,可以通过企业管理器和T-SQL语句来完成。 1创建视图 创建视图可以通过企业管理器、向导或T-SQL语句完成。,7.2 视 图,1)打开企业管理器,展开“SQL Server组”,再展开要为其创建数据的“服务器”节点。展开要创建视图的数据库“RtvuStu”,右键单击“视图”文件夹,如图7-13所示。,图7-13 企业管理器创建视图,7.2 视 图,2)在弹出的快捷菜单中选择“新建视图”命令,弹出如图7-14所示的“新建视图”对话框。,图7-14 “新建视图”对话框,7.2 视 图,3)在选定区单击鼠标右键,在弹出的快捷菜单中选择“添加表”命令,如图7-15所示。
16、,图7-15 “添加表”命令,7.2 视 图,4)打开“添加表”对话框,如图7-16所示。在此对话框中,可以选择表、视图或函数选项卡,然后单击“添加”按钮,将其添加到视图的查询中。,图7-16 “添加表”对话框,7.2 视 图,5)添加完成后,单击“关闭”按钮,返回到“新建视图”对话框,在选定区可以看到添加进来的“Course”、“Student”和“Results”三个表及其关联,可以拖动各表中的关键字来创建关联关系,如图7-17所示。,图7-17 “新建视图”对话框,7.2 视 图,6)完成设计后,单击工具栏的“!”图标,在数据显示区将显示包含在视图中的数据行,如图7-18所示。,图7-18 运行视图对话框,7.2 视 图,7)单击工具栏中的“保存”图标,在弹出的“另存为”对话框中输入视图的名称“stu_score”,如图7-19所示。单击“确定”按钮,