您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > 实验五__视图的创建与使用
视图的创建与使用一、实验目的(1)理解视图的概念。(2)掌握创建视图、测试、加密视图的方法。(3)掌握更改视图的方法。(4)掌握用视图管理数据的方法。二、实验内容1.创建视图(1)创建一个名为stuview2的水平视图,从数据库Student_info的Student表中查询出性别为“男”的所有学生的资料。并在创建视图时使用withcheckoption。(注:该子句用于强制视图上执行的所有修改语句必须符合由Select语句where中的条件。)createviewstuview2asselect*fromStudentwhereSex='男'withcheckoption查看视图:select*fromstuview2(2)创建一个名为stuview3的投影视图,从数据库Student_info的Course表中查询学分大于3的所有课程的课程号、课程名、总学时。并在创建时对该视图加密。(提示:用withENCRYPTION关键子句)createviewstuview3withENCRYPTIONasselectCno,Cname,Total_periorfromCoursewhereCredit3查看视图:select*fromstuview3(3)创建一个名为stuview4的视图,能检索出“051”班所有女生的学号、课程号及相应的成绩。createviewstuview4asselect*fromSCwhereSno=(selectSnofromStudentwhereClassno='051'andSex='女')查看视图:select*fromstuview4(4)创建一个名为stuview5的视图,能检索出每位选课学生的学号、姓名、总成绩。createviewstuview5asselectStudent.Sno学号,Sname姓名,Grade成绩fromStudent,SCwhereStudent.Sno=SC.Sno查看视图:select*fromstuview5若出现如上图所示情况,单击“查询”→IntelliSense→刷新本地缓存然后就解决了。2.查询视图的创建信息及视图中的数据(1)查看视图stuview2的创建信息。a.通过系统存储过程sp_help查看b.通过查询表sysobjectsa、sp_helpstuview2b、selectso.name,sc.name,sc.colid,st.namefromsysobjectsso,syscolumnssc,systypesstwhereSO.id=SC.idandSO.xtype='V'andSO.status=0andSC.xtype=ST.xusertypeandSO.name='stuview2'orderbySO.name,SC.colorder(2)通过查看视图的定义脚本。a.通过系统存储过程sp_helptextsp_helptextstuview2b.通过查询表sysobjects和表syscomments(提示:视图的名称保存在表sysobjects的name列,定义脚本保存在表syscomments的text列)selectSO.name,SC.textfromsysobjectsSO,syscommentsSCwhereSO.id=SC.idandSO.xtype='V'andSO.status=0andSO.name='stuview2'3)查看加密视图stuview3的定义脚本。sp_helptextstuview33.修改视图的定义(1)修改视图stuview3使其从数据库Student_info的Student表中查询总学时大于60的所有课程的课程号、课程名、学分。(提示:若视图原具有加密保护,修改视图时若未加withencryption子句,则修改后的视图不再加密。)alterviewstuview3withencryptionasselectCno,Cname,CreditfromCoursewhereTotal_perior60查看视图:select*fromstuview34.视图的更名与删除1)用系统存储过程sp_rename将视图stuview4更名为stuv4。sp_renamestuview4,stuv42)将视图stuv4删除。dropviewstuv45.管理视图中的数据1)从视图stuview2查询出班级为“051”、姓名为“张虹”的资料。select*fromstuview2whereClassno='051'andSname='张虹'2)向视图stuview2中插入一行数据,内容为:学号姓名班级性别家庭住址入学时间出生年月20110005赵小林054男南京2011/09/011993/01/09insertintostuview2values('20110005','赵小林','男','1993/01/09','054','2011/09/01','南京','CH','201111')查看视图:select*fromstuview23)查询student,查看表中的内容有何变化。Student表中已有“赵小林”的信息select*fromStudent4)向视图stuview2中插入一行数据,内容为:学号姓名班级性别家庭住址入学时间出生年月20110006赵静054女南京2011/09/011993/11/09能成功插入吗?原因何在?不能插入,原因是目标视图或者目标视图所跨越的某一视图指定了WITHCHECKOPTION,而该操作的一个或多个结果行又不符合CHECKOPTION约束。insertintostuview2values('20110006','赵静','女','1993/01/09','054','2011/09/01','南京','CH','201111')5)修改视图stuview2中的数据。a.将stuview2中054班、姓名为“赵小林”同学的家庭地址改为“扬州市”。updatestuview2setHome_addr='扬州市'whereHome_addr='南京'andSname='赵小林'andClassno='054'查看视图:select*fromstuview2b.查询student,查看表中的内容有何变化student表中的赵小林的家庭住址已发生了改变select*fromStudent6)从视图stuview1中将班级为054、姓名为“赵小林”同学删除。deletefromstuview2whereSname='赵小林'查看视图:
本文标题:实验五__视图的创建与使用
链接地址:https://www.777doc.com/doc-7065183 .html