资源描述:
《数据库电子教案PP T第 6章.ppt》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、第五章视图和索引本章目标掌握如何创建并使用视图掌握如何创建索引教师需要的视图:方便查看学生的成绩班主任需要的视图:方便查看学生的档案什么是视图?CREATEVIEWv_tblstudentASSELECT学号=s.stu_id姓名=stud_name,…基于学生基本情况表表和成绩表创建视图视图是一张虚拟表,它表示一张表的部分数据或多张表的综合数据,其结构和数据是建立在对表的查询基础上视图中并不存放数据,而是存放在视图所引用的原始表(基表)中同一张原始表,根据不同用户的不同需求,可以创建不同的视图什么是视图?
2、视图的用途筛选表中的行防止未经许可的用户访问敏感数据降低数据库的复杂程度将多个物理数据库抽象为一个逻辑数据库什么是视图?演示使用T-SQL管理平台创建视图如何创建视图?显示关系图窗格显示条件窗格显示SQL窗格显示结果窗格使用T-SQL语句创建视图的语法CREATEVIEW视图名AS
3、scoreASSELECT学号=stud_id,姓名=(selectstud_namefromtblstudentswheresc.stud_id=sc.stud_id),最高分=max(score),平均分=avg(score),最低分=min(score)FROMtblscorescGROUPBYsc.stud_idGOSELECT*FROMview_stu_score创建一个查看成绩的视图检测视图是否存在创建视图使用视图删除视图如何创建视图?创建命令创建命令视图名AS关键字不能少Select语句视图查看结
4、果示例6.1示例6.1答案在student数据库中,根据现有的班级表(tblclass)创建一个仅包含系部编号为“3”的所有班级信息的视图并查看视图。createviewview_depart_3asselect*fromtblclasswheredepart_id='3‘goSelect*fromview_depart_3行列子集视图示例6.2示例6.2答案建立在学生基本情况表(tblstudent)上的所有男生的视图createviewview_Student1asselectStud_id,Stud_na
5、me,stud_sex,birthfromtblStudentwhereStud_sex='男'行列子集视图示例6.3示例6.3答案建立所有男生学生的视图,并要求通过该视图进行的更新操作只涉及男生。createviewview_Student2asselectStud_id,Stud_name,stud_sex,birthfromtblStudentwhereStud_sex='男'withcheckoption带WITHCHECKOPTION的视图示例6.4示例6.4答案创建一个实现查询入学日期小于“2003
6、-9-1”的视图,要求对视图文本加密。createviewview_student3withencryptionasselect*fromtblstudentwhereenroll_date<'2003-9-1'带Withencryption的视图示例6.5示例6.5答案用学生基本情况表(tlstudent)和学生成绩表(tblscore)创建视图,其视图含有的列为:stud_id,stud_name,stud_sex,course_id,score。createviewv_student_scoreassel
7、ects.stud_id,stud_name,stud_sex,course_id,scorefromtblstudents,tblscorescwheres.stud_id=sc.stud_id基于多个基本表的视图示例6.6示例6.6答案基于student数据库,在示例6.5建立的视图基础上创建一个含有stud_id,stud_name,course_id,score且学生性别是“男”的视图。createviewv_student_score1asselects.stud_id,stud_name,cours
8、e_id,scorefromv_student_scorewherestud_sex=’男’基于视图的视图视图名示例6.7示例6.7答案对于student数据库,创建一个查询计算“310220”班学生人数的视图。createviewview_student_count(人数)asselectcount(*)fromtblstudentwhereclass_id='310220'带表达式