使用SQL语句创建视图5.ppt
《使用SQL语句创建视图5.ppt》由会员分享,可在线阅读,更多相关《使用SQL语句创建视图5.ppt(54页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 第4讲 视图什么是视图?基表(基表(base table)base table):独立存在的表独立存在的表视图视图虚拟表。在虚拟表。在SQLSQL中只存储视图的定义,不存放视图所对应的记录中只存储视图的定义,不存放视图所对应的记录视图的概念 视图视图是从一个或者多个表或视图中导出的表,其是从一个或者多个表或视图中导出的表,其结构和数据是建立在对表的查询基础上的。和真结构和数据是建立在对表的查询基础上的。和真实的表一样,视图也包括几个被定义的数据列和实的表一样,视图也包括几个被定义的数据列和多个数据行,但从本质上讲,这些数据列和数据多个数据行,但从本质上讲,这些数据列和数据行来源于其所引用的表
2、。行来源于其所引用的表。视图概述视图的作用视图的作用使用户只关注所关心的数据使用户只关注所关心的数据提高了数据的安全性提高了数据的安全性提高客户端的查询效率提高客户端的查询效率注意,创建视图时应该注意以下情况:注意,创建视图时应该注意以下情况:只能在当前数据库中创建视图。只能在当前数据库中创建视图。如果视图引用的基表或者视图被删除,则该视图不能再被如果视图引用的基表或者视图被删除,则该视图不能再被使用,直到创建新的基表或者视图。使用,直到创建新的基表或者视图。如果视图中某一列是函数、数学表达式、常量或者来自多如果视图中某一列是函数、数学表达式、常量或者来自多个表的列名相同,则必须为列定义名称。
3、个表的列名相同,则必须为列定义名称。不能在视图上创建索引不能在视图上创建索引视图的名称必须遵循标识符的规则,且对每个用户必须是视图的名称必须遵循标识符的规则,且对每个用户必须是唯一的。此外,该名称不得与该用户拥有的任何表的名称唯一的。此外,该名称不得与该用户拥有的任何表的名称相同。相同。视图应用视图为基表的行的子集视图为基表的行的子集 【问题问题】在在XK数据库创建视图数据库创建视图v_Student,只显示只显示Student表中班级编码为表中班级编码为20000001的班级的学生信息的班级的学生信息方法方法1:使用企业管理器:使用企业管理器方法方法2:使用:使用SQL语句语句方法方法3:使
4、用创建视图向导:使用创建视图向导创建视图SQL语句定义如下:use xk go create view v_student with encryption as select *from student where classno=20000001 go练习1.创建视图创建视图v_Class,只显示只显示Class表中系表中系部编码为部编码为01的系部的班级信息的系部的班级信息2.创建视图创建视图v_StuCouSub,只显示只显示StuCou表中的表中的StuNo列和列和CouNo列列创建视图视图为多个表、视图连接组成的复杂查询视图为多个表、视图连接组成的复杂查询最常用的情况最常用的情况【例
5、例】创建视图创建视图v_StuCou,显示学生的学显示学生的学号、姓名和所选的课程名称号、姓名和所选的课程名称特点:特点:多表查询(其实只需要在正确的多表查询(其实只需要在正确的select语语句前加上句前加上CREATE VIEWAS即可)即可)创建视图添加表并选择要输出的行练习创建视图创建视图v_CouByCpt,显示计算机应用工程系承担的显示计算机应用工程系承担的选修课程的信息(课程名称、授课老师、上课时间)选修课程的信息(课程名称、授课老师、上课时间)use xk go create view v_coubycpt as select CouName,Teacher,SchoolTim
6、e,DepartName from Course,Department where Course.DepartNo=Department.DepartNo and DepartName=计算机应用工程系计算机应用工程系 go创建视图(4)视图为基表的统计汇总视图为基表的统计汇总【问题问题】创建视图创建视图v_CouByKind,按课程分类统计报按课程分类统计报名人数。名人数。特点:特点:视图定义中使用了视图定义中使用了GROUP BY子句子句注意:注意:在下面的情况下必须明确指明视图每一列的列名:在下面的情况下必须明确指明视图每一列的列名:1.视图中的某一列是算术表达式、函数或者常量视图中的某
7、一列是算术表达式、函数或者常量2.多表连接时,有两个或两个以上的列具有相同的多表连接时,有两个或两个以上的列具有相同的列名列名思考:能否将课本思考:能否将课本P51图图2-2-26的查询结果作为视图的查询结果作为视图创建视图创建视图 use xk go create view V_coubykind as select kind as 课程分类课程分类,sum(willnum)as 报名总数报名总数 from course group by kindgo练习创建视图创建视图v_CouByDep,显示各个系部开显示各个系部开设的选修课的数量和报名人数设的选修课的数量和报名人数创建视图SQL语句
8、use xk go create view v_CouByDep as select departname 课程名称课程名称,课程数量课程数量=count(*),报名人数报名人数=sum(willnum)from department,course where department.departno=course.departno group by departname go显示视图信息显示视图信息显示视图信息显示视图的定义信息显示视图的定义信息sp_helptext显示视图的参照对象和字段信息显示视图的参照对象和字段信息 sp_depends例:例:显示显示v_coubycpt的定义信息、参
9、照对象和字段的定义信息、参照对象和字段信息。信息。sp_helptext v_coubycpt go sp_depends v_coubycpt go修改视图格式:格式:ALTER VIEW view_nameASselect_statement【问题问题】将将v_ CouByCpt进行修改,使其显示旅进行修改,使其显示旅游系所开设的所有课程信息。游系所开设的所有课程信息。加密视图加密视图WITH ENCRYPTION修改视图 use xk go alter view v_coubycpt as select CouName,Teacher,SchoolTime,DepartName from
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 使用 SQL 语句 创建 视图
限制150内