第7章 使用视图和索引优化查询.ppt
《第7章 使用视图和索引优化查询.ppt》由会员分享,可在线阅读,更多相关《第7章 使用视图和索引优化查询.ppt(43页珍藏版)》请在课桌文档上搜索。
1、第7章 使用视图和索引优化查询,复习:,数据库的基本关系运算投影(查询指定的列)连接(查询多个表)选择(查询符合条件的行)基本查询对一张表的查询对表中的原始数据的查询,分别用什么子句实现?,select 列表名,from 表名,n,where 条件,例:select*from xsqk where 出生日期1981-01-01 and 性别=0,复习:,汇总查询(1)使用聚合函数:每个聚合函数只返回一个单值。select avg(成绩)from xs_kc(2)分类汇总:每个组返回一条汇总记录。select 学号,avg(成绩)from xs_kcgroup by 学号(3)(分类)明细汇总:
2、select*from xs_kc compute avg(成绩),having avg(成绩)75,by 学号,order by 学号,复习:,连接查询:同时查询多个表中的信息。内连接:将多表中满足条件的行连接起来。select xsqk.学号,姓名,课程号,成绩 from xsqk,xs_kc where xsqk.学号=xs_kc.学号 and 成绩60外连接:将满足条件的行连接,不匹配的行也保留。自连接:将同一个表中满足条件的行连接起来。,复习:,子查询:一个select语句(内查询)作为另一条select语句(外查询)的一部分。相关子查询:内查询的执行依赖外查询。嵌套子查询:(不依赖
3、),select 学号,姓名,联系电话 from xsqkwhere(select avg(成绩)from xs_kc where xsqk.学号=xs_kc.学号)60,select 课程名称,授课教师 from kcwhere 课程号=ANY(select 课程号 from xs_kc where 成绩60),说明:子查询执行后,若返回1个单值,则可用比较运算符来设置条件:若返回一个列表值,则可用:(not)in、any、all,引:,请思考:查询结果集能否被用户修改?在查询窗口得到的结果是不能被修改的。查询结果集可以用into子句来保存。例:select xsqk.学号,姓名,专业名,课
4、程名,成绩 into cj from xsqk,xs_kc,kc where xsqk.学号=xs_kc.学号 and xs_kc.课程号=kc.课程号再思考:cj表中的数据与基表数据是否并存于数据库中?用户对查询到的信息(cj表)进行修改对基表是否有影响?如果用户直接对基表进行操作,会有什么后果?,是。但会造成:数据重复存储。,无影响。,后果是:增加了数据的不安全性。,视图的使用教学内容,基础知识:视图概述创建视图修改视图删除视图使用视图管理数据表中的数据,视图的使用学习目标,认知目标:了解视图的概念、使用的目的和好处理解视图与基表的关系 能力目标:掌握创建、修改、删除视图的方法(重点、难点
5、)掌握查询视图的方法(重点),一、视图概述,视图的含义和作用是基于某个查询结果的虚表。是用户查看和修改数据表中数据的一种方式。每个视图都有几个被定义的列和多个数据行。视图与基表的关系视图中的数据列和行来源于其所引用的基表。视图所对应的数据并不实际存储在数据库中,而是仍存储在视图所引用的基表中。数据库中只存储视图的定义。,一、视图概述,使用视图的目的与好处聚焦特定数据:使用户只能看到和操作与他们有关的数据,提高了数据的安全性。简化数据操作:使用户不必写复杂的查询语句就可对数据进行操作。定制用户数据:使不同水平的用户能以不同的方式看到不同的数据。合并分离数据:视图可以从水平和垂直方向上分割数据,但
6、原数据库的结构保持不变。,二、创建视图,最基本的语句格式:create view 视图(列名表)with encryption as select查询语句 with check option 通过对象资源管理器创建视图,加密视图的定义,使用户只能查看,不能修改。,强制所有通过视图修改的数据满足select语句中指定的条件。,二、创建视图,实例1:创建一个 名为“v1”的视图,用于查询计算机网络专业男生的学号、姓名、出生日期,并将视图的列名分别改为:学生学号、男生姓名、生日。,create view v1(学生学号,男生姓名,生日)as select 学号,姓名,出生日期 from xsqk w
7、here 专业名=计算机网络 and 性别=1goselect*from v1,通过视图查询基表中的数据。,二、创建视图,实例2:创建一个 名为“v综合信息”的视图,用于查询学生的学号、姓名、专业名、课程名、成绩等信息,create view V综合信息 as select xsqk.学号,姓名,专业名,课程名,成绩 from xsqk,xs_kc,kc where xsqk.学号=xs_kc.学号 and xs_kc.课程号=kc.课程号 exec sp_helptext v综合信息,with encryption,对视图的定义进行加密,查看视图的定义,二、创建视图,课堂练习1:创建一个名为
8、“V平均成绩”的视图,用于分组汇总查询每个学生的平均成绩,将视图的列名分别改为:学生学号,个人平均分,并加密视图的定义。,create view V平均成绩(学生学号,个人平均分)with encryptionas select 学号,avg(成绩)from xs_kc group by 学号,二、创建视图,实例3:创建一个名为“V单科最高分”的视图,用于查询每门课程的最高分的学生学号、姓名、课程号、成绩信息。,create view V单科最高分as select xsqk.学号,姓名,课程号,成绩 from xsqk,xs_kc where xsqk.学号=xs_kc.学号 and 成绩=
9、any(select max(成绩)from xs_kc group by 课程号),二、创建视图,课堂练习2:创建一个名为“V全校最高分”的视图,用于查询所有成绩中的最高分的学生学号、姓名、专业名、课程号、成绩。,create view V全校最高分asselect xsqk.学号,姓名,专业名,课程号,成绩 from xsqk,xs_kcwhere xsqk.学号=xs_kc.学号 and 成绩=(select max(成绩)from xs_kc),成绩=all(select 成绩 from xs_kc),三、修改视图,语法格式:alter view 视图(列名表)with encrypt
10、ion as select查询语句 with check option 通过对象资源管理器修改视图,三、修改视图,实例4:在“v1”的视图中增加两列:专业名和所在系。alter view v1(学生学号,男生姓名,生日,专业,系)as select 学号,姓名,出生日期,专业名,所在系 from xsqk where 专业名=计算机网络 and 性别=1,三、修改视图,实例5:修改名为“v综合信息”的视图,取消其加密属性,增加选项检查属性。,alter view V综合信息 as select xsqk.学号,姓名,专业名,课程名,成绩 from xsqk,xs_kc,kc where xsq
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第7章 使用视图和索引优化查询 使用 视图 索引 优化 查询

链接地址:https://www.desk33.com/p-756082.html