第7讲 视图
第7讲 视图
●什么是视图? 取正引[年甚本 权图 200140 C00圆32 200383… 视图概述 基本表 麻号名的國灬本 序加工作……津 B/1675320 20睡三38 800 …Q阅5 003企素芳53 9基表( base table):独立存在的表 视图—虛拟表。在SQL中只存储视 图的定义,不存放视图所对应的记录
视 图 概 述 什么是视图? 基表(base table):独立存在的表 视图——虚拟表。在SQL中只存储视 图的定义,不存放视图所对应的记录
●问题 如果经常要查询计算机系开设的 课程,如何做到一次定义,多 次使用? 问如果做到让00电子商务班的班 题主任只能看到本班的选课情况?
问 题 问题 如果经常要查询计算机系开设的 课程,如何做到一次定义,多 次使用? 如果做到让00电子商务班的班 主任只能看到本班的选课情况?
●视图的作用 9使用户只关注所关心的数据 9提高了数据的安全性 视图概述续 9提高客户端的查询效率
视 图 概 述 ( 续 ) 视图的作用 使用户只关注所关心的数据 提高了数据的安全性 提高客户端的查询效率
●视图为基表的行的子集 问题】创建视图 Student,只显 创 示 Student表中班级编码为 建视图 20000001的班级的学生信息 特点 g& SeLECt 3用 WHERE子句指明选择哪些行
创 建 视 图 ( 1 ) 视图为基表的行的子集 【问题】创建视图v_Student,只显 示Student表中班级编码为 20000001的班级的学生信息 特点: SELECT * 用WHERE子句指明选择哪些行
●视图为基表的列的子集 问题】创建视图 v Course,只显 创 示 Course表中的 CouName列和 建视图 Schooltime列 e特点 9 SELECT子句中指明选择哪些列 8没有 WHERE子句
创 建 视 图 ( 2 ) 视图为基表的列的子集 【问题】创建视图v_Course,只显 示Course表中的CouName列和 SchoolTime列 特点: SELECT子句中指明选择哪些列 没有WHERE子句
1.创建视图 v Class,只显示 Class表中系部编码为01的系 部的班级信息 2.创建视图 v Stucousub,只显 练习 示 stucou表中的SNo列和 COuN列
练 习 1. 创建视图v_Class,只显示 Class表中系部编码为01的系 部的班级信息 2. 创建视图v_StuCouSub,只显 示StuCou表中的StuNo列和 CouNo列
●视图为多个表、视图连接组成 的复条查询—最常用的情况 创 (例】创建视图 v Stucou,显示学 建视图 生的学号、姓名和所选的课程名 称 ●特点: 3 8多表查询(其实只需要在正确的 selec语句前加上 CREATE V正EW.AS即可)
创 建 视 图 ( 3 ) 视图为多个表、视图连接组成 的复杂查询——最常用的情况 【例】创建视图v_StuCou,显示学 生的学号、姓名和所选的课程名 称 特点: 多表查询(其实只需要在正确的 select语句前加上CREATE VIEW…AS即可)
创建视图Ⅴ CouByCmpt,显示 计算机应用工程系承担的选修 课程的信息(课程名称、授课 老师、上课时间) 练习
练 习 创建视图v_CouByCmpt,显示 计算机应用工程系承担的选修 课程的信息(课程名称、授课 老师、上课时间)
视图为基表的统计汇总 问题】将课本P52图22-27的查询结果 创 作为视图 v CouByKind 建视图 特点 9视图定义中使用了 GROUP BY子旬 ●注意:在下面的情况下必须明确 指明视图每一列的列名: 视图中的某一列是算术表达式、函 数或者常量 2多表连接时,有两个或两个以上的 列具有相同的列名 ●思考:能否将课本P51图2-2-26的 查询结果作为视图
创 建 视 图 ( 4 ) 视图为基表的统计汇总 【问题】将课本P52图2-2-27的查询结果 作为视图v_CouByKind 特点: 视图定义中使用了GROUP BY子句 注意:在下面的情况下必须明确 指明视图每一列的列名: 1. 视图中的某一列是算术表达式、函 数或者常量 2. 多表连接时,有两个或两个以上的 列具有相同的列名 思考:能否将课本P51图2-2-26的 查询结果作为视图