
第7讲 视图 米
第7讲 视图

鲁什么是视图? 基本工 135 2002 13 2005 视图概述 燕本表 职工号处名甲的 知工作…津5 00140 2260 71675 2002三36 800 200金苏53 7B0 6w22a 基表(base table): 独立存在的表 就视图一虚拟表。 在SOL中只存储视 图的定义,不存放视图所对应的记录
视 图 概 述 什么是视图? 基表(base table):独立存在的表 视图——虚拟表。在SQL中只存储视 图的定义,不存放视图所对应的记录

。问题 如果经常要查询计算机系开设的 课程,如何做到一次定义,多 次使用? 问 如果做到让00电子商务班的班 题 主任只能看到本班的选课情况?
问 题 问题 如果经常要查询计算机系开设的 课程,如何做到一次定义,多 次使用? 如果做到让00电子商务班的班 主任只能看到本班的选课情况?

。视图的作用 粥使用户只关注所关心的数据 提高了数据的安全性 视图概述续 提高客户端的查询效率
视 图 概 述 ( 续 ) 视图的作用 使用户只关注所关心的数据 提高了数据的安全性 提高客户端的查询效率

。视图为基表的行的子集 【问题】剑建视图v Student,只显 创 示Student表中班级编码为 20000001的班级的学生信息 视图 。特点: 粥SELECT* 粥用VHERE子句指明选择哪些行
创 建 视 图 ( 1 ) 视图为基表的行的子集 【问题】创建视图v_Student,只显 示Student表中班级编码为 20000001的班级的学生信息 特点: SELECT * 用WHERE子句指明选择哪些行

。视图为基表的列的子集 【问题】剑建视图v Course,只显 创建视 示Course表中的CouName列和 SchoolTime列 。特点: SELECT子句中指明选择哪些列 2 B没有VHERE子句
创 建 视 图 ( 2 ) 视图为基表的列的子集 【问题】创建视图v_Course,只显 示Course表中的CouName列和 SchoolTime列 特点: SELECT子句中指明选择哪些列 没有WHERE子句

1. 创建视图v Class,只显示 Class.表中系部编码为0l的系 部的班级信息 2. 剑建视图v StuCouSub,.只显 等 示StuCou表中的StuNo列和 CouNo列
练 习 1. 创建视图v_Class,只显示 Class表中系部编码为01的系 部的班级信息 2. 创建视图v_StuCouSub,只显 示StuCou表中的StuNo列和 CouNo列

。视图为多个表、视图连接组成 的复杂查询一最常用的情况 创 【例】剑建视图v StuCou,显示学 生的学号、姓名和所选的课程名 视图 称 。特点: 3 多表查询(其实只需要在正确的 select-语句前加上CREATE VIEW..AS即可)
创 建 视 图 ( 3 ) 视图为多个表、视图连接组成 的复杂查询——最常用的情况 【例】创建视图v_StuCou,显示学 生的学号、姓名和所选的课程名 称 特点: 多表查询(其实只需要在正确的 select语句前加上CREATE VIEW…AS即可)

。创建视图CouByCmpt,显示 计算机应用工程系承担的选修 课程的信息(课程名称、授课 老师、上课时间) 练
练 习 创建视图v_CouByCmpt,显示 计算机应用工程系承担的选修 课程的信息(课程名称、授课 老师、上课时间)

视图为基表的统计汇总 【问题】将课本P52图2-2-27的查询结果 作为视图v CouByKind 创建视图 卷 特点: 视图定义中使用了GROUP BY子句 注意:在下面的情况下必预明确 指明视图每一列的列名: 4 视图中的某一列是算术表达式、函 数或者常量 2多表连接时,有两个或两个以上的 列具有相同的列名 思考:能否将课本P51图2-2-26的 查询结果作为视图
创 建 视 图 ( 4 ) 视图为基表的统计汇总 【问题】将课本P52图2-2-27的查询结果 作为视图v_CouByKind 特点: 视图定义中使用了GROUP BY子句 注意:在下面的情况下必须明确 指明视图每一列的列名: 1. 视图中的某一列是算术表达式、函 数或者常量 2. 多表连接时,有两个或两个以上的 列具有相同的列名 思考:能否将课本P51图2-2-26的 查询结果作为视图