任务7-2 使用视图优化查询性能 课件(共25张PPT)-《数据库应用技术-SQL Server》同步教学(人民邮电版)

资源下载
  1. 二一教育资源

任务7-2 使用视图优化查询性能 课件(共25张PPT)-《数据库应用技术-SQL Server》同步教学(人民邮电版)

资源简介

(共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_student
AS
SELECT A.sno,sname,cname,degree
FROM studentA,courseB,sc C
WHERE 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_student
AS
SELECTsno,sname,saddress
FROM student
使用视图优化查询性能
任务7-2
任务1-1 数据处理
执行以下脚本。
INSERT INTO v1_student
VALUES('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_student
ASSELECT 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

展开更多......

收起↑

资源预览