资源简介 (共25张PPT)优化查询学生信息管理数据库任务7-1 使用索引优化查询性能目录Contents任务7-2 使用视图优化查询性能实训 创建与管理索引和视图PART 2任务7-2 使用视图优化查询性能任务assignments(一)视图概述(二)创建视图(三)使用视图(四)修改视图(五)删除视图使用视图优化查询性能任务7-2任务1-1 数据处理【任务分析】合理设计数据库的视图,以提高数据的存取性能和操作速度,从而进一步提高系统的性能。【课堂任务】理解视图的作用及使用。 视图的概念及作用 视图的创建、修改和删除使用视图优化查询性能任务7-2任务1-1 数据处理(一)视图概述视图(View)是以基表(Table)为基础,通过SELECT查询语句从一个或多个表中导出来的虚拟表。在定义一个视图时,只是把其定义存放在数据库中,并不直接存储视图对应的数据,只有用户使用视图时,才去查找对应的数据。使用视图优化查询性能任务7-2任务1-1 数据处理使用视图具有如下优点。(1)简化对数据的操作。视图可以简化用户操作数据的方式。可以将经常使用的连接、投影、联合查询和选择查询定义为视图,这样在每次执行相同的查询时,不必重写这些复杂的语句,只要一条简单的查询视图语句即可。视图可向用户隐藏表与表之间复杂的连接操作。(2)自定义数据。视图能让不同用户以不同方式看到不同或相同的数据集,即使不同水平的用户共用同一数据库时,也是如此。使用视图优化查询性能任务7-2任务1-1 数据处理(3)数据集中显示。视图使用户着重于其感兴趣的某些特定数据或所负责的特定任务,从而提高数据操作效率,并增强数据的安全性,因为用户只能看到视图定义的数据,而不是基本表中的数据。例如,student表涉及3个系的学生数据,可以在其上定义3个视图,每个视图只包含一个系的学生数据,并只允许每个系的学生查询自己所在系的学生视图。(4)导入和导出数据。可以使用视图将数据导入或导出。使用视图优化查询性能任务7-2任务1-1 数据处理(5)合并分割数据。在某些情况下,由于表中数据量太大,在表的设计过程中可能需要经常对表进行水平分割或垂直分割,但表结构的变化会对应用程序产生不良的影响。使用视图可以重新保持原有的结构关系,从而使外模式保持不变,原有的应用程序仍可以通过视图来重载数据。(6)安全机制。视图可以作为一种安全机制。通过视图,用户只能查看和修改他们能看到的数据。其他数据库或表既不可见,也不可访问。使用视图优化查询性能任务7-2任务1-1 数据处理(二)创建视图在SQL Server中,可以使用SSMS和CREATE VIEW语句创建视图。1.使用SSMS创建视图下面为grademanager数据库创建一个视图,要求连接student表、sc表和course表,操作步骤如下。(1)启动SSMS,在对象资源管理器中,连接到数据库引擎的实例。(2)展开【数据库】|grademanager,用鼠标右键单击【视图】节点,在弹出的快捷菜单中选择【新建视图】命令。使用视图优化查询性能任务7-2任务1-1 数据处理(3)打开【添加表】对话框,在此对话框中可以看到,视图的基表可以是表,也可以是视图、函数和同义词。这里使用表作为视图的基表,在【表】选项卡中选择student表、sc表和course表,如图7.5所示。(4)选择指定的表后,单击【添加】按钮,如果不再需要添加,则可以单击【关闭】按钮,关闭【添加表】对话框。使用视图优化查询性能任务7-2任务1-1 数据处理使用视图优化查询性能任务7-2任务1-1 数据处理(5)在视图窗口的关系图窗格中,显示了student表、sc表和course表的全部列信息,在此可选择视图包含的列,如选择student表中的sno、sname和ssex列,sc表中的degree列,course表中的cname列,在下面的条件窗格中显示了选择的列。在SQL语句窗格中显示了创建视图的SELECT语句,如图7.6所示。图7.6 创建视图窗口(6)单击工具栏上的【存盘】按钮,在弹出的【选择名称】窗口中输入视图名称View_degree,单击【确定】按钮即可。然后可以查看【视图】节点下是否存在视图View_degree,如果存在,则表示创建成功。使用视图优化查询性能任务7-2任务1-1 数据处理2.使用CREATE VIEW语句创建视图在SQL中,使用CREATE VIEW语句创建视图,其语法格式如下。CREATE VIEW view_name [(Column [,…n])][WITH ENCRYPTION]AS select_statement[WITH CHECK OPTION]使用视图优化查询性能任务7-2任务1-1 数据处理(1)view_name:要创建的视图的名称,遵循数据库标识符命名规则,并且在一个数据库中要保证是唯一的,该参数不能省略。(2)Column:声明视图中使用的列。(3)WITH ENCRYPTION:给系统表syscomments中定义视图的SELECT命令加密。(4)AS:说明视图要完成的操作。(5)select_statement:定义视图的SELECT命令。(6)WITH CHECK OPTION:强制所有通过视图修改的数据满足select_statement语句中指定的选择条件。使用视图优化查询性能任务7-2任务1-1 数据处理【例7.3】 有条件的视图定义。定义视图v_student,查询所有选修“数据库”课程的学生的学号(sno)、姓名(sname)、课程名称(cname)和成绩(degree)。该视图的定义涉及了student表、course表和sc表。CREATE VIEW v_studentASSELECT A.sno,sname,cname,degreeFROM studentA,courseB,sc CWHERE A.sno=C.sno AND B.cno=C.cno AND cname='数据库'使用视图优化查询性能任务7-2任务1-1 数据处理(三)使用视图视图的使用主要包括视图的检索,通过视图对基表进行插入、修改、删除操作。视图的检索几乎没有什么限制,但是对通过视图实现表的插入、修改、删除操作则有一定的限制条件。1.使用视图进行数据检索视图的查询总是转换为对它所依赖的基本表的等价查询。利用SQL的SELECT命令和SSMS管理工具都可以查询视图,其使用方法与基本表的查询完全一样。使用视图优化查询性能任务7-2任务1-1 数据处理2.通过视图修改数据视图也可以使用INSERT命令插入行,执行INSERT命令,实际上是向视图引用的基本表插入行。在视图中使用INSERT命令与在基本表中使用INSERT命令的格式完全一样。【例7.4】 利用视图向student表插入一条数据。先创建v1_student视图,脚本如下。CREATE VIEW v1_studentASSELECTsno,sname,saddressFROM student使用视图优化查询性能任务7-2任务1-1 数据处理执行以下脚本。INSERT INTO v1_studentVALUES('20050203','王小龙','山东省青岛市')查看结果的脚本如下。SELECT *FROM student WHERE sname='王小龙'从图7.7所示的执行结果可以看出,数据在基本表中已经正确插入。使用视图优化查询性能任务7-2任务1-1 数据处理使用视图优化查询性能任务7-2任务1-1 数据处理提示 如果视图中有以下属性,则插入、更新和删除基表将失败。(1)视图定义中的FROM子句包含两个或多个表,且SELECT选择列表达式中的列包含来自多个表的列。(2)视图的列是从集合函数派生的。(3)视图中的SELECT语句包含GROUP BY子句或DISTINCT选项。(4)视图的列是从常量或表达式派生的。使用视图优化查询性能任务7-2任务1-1 数据处理(四)修改视图视图创建之后,由于某种原因(如基本表中的列发生了改变,或需要在视图中增/删若干列等),需要修改视图。1.使用SSMS修改视图(1)启动SSMS,在对象资源管理器中,连接到数据库引擎的实例。(2)展开【数据库】|grademanager|【视图】节点,用鼠标右键单击要修改的视图,在快捷菜单中选择【设计】命令,进入视图设计窗口修改视图。使用视图优化查询性能任务7-2任务1-1 数据处理2.使用ALTER VIEW语句修改视图在SQL中,ALTER VIEW语句的语法格式如下。ALTER VIEW view_name [(Column[,…n])][WITH ENCRYPTION]AS select_statement[WITH CHECK OPTION]命令行中的参数与CREATE VIEW命令中的参数含义相同。【例7.6】 修改例7.4中的视图v1_student。ALTER VIEW v1_studentASSELECT sno,snameFROM student使用视图优化查询性能任务7-2任务1-1 数据处理(五)删除视图视图创建后,随时可以删除。删除操作很简单,通过SSMS和DROP VIEW语句都可以完成。1.使用SSMS删除视图操作步骤如下。(1)在当前数据库中展开【视图】节点。(2)用鼠标右键单击要删除的视图(如v1_student),在弹出的快捷菜单中选择【删除】命令。(3)在打开的【删除对象】窗口中单击【确定】按钮即可。使用视图优化查询性能任务7-2任务1-1 数据处理2.使用DROP VIEW语句删除视图语法格式如下。DROP VIEW {view} [,…n]DROP VIEW命令可以删除多个视图,各视图名之间用逗号分隔。【例7.7】 删除视图v1_student。DROP VIEW v1_student 展开更多...... 收起↑ 资源预览