实验五视图的创建与使用Word格式.docx
《实验五视图的创建与使用Word格式.docx》由会员分享,可在线阅读,更多相关《实验五视图的创建与使用Word格式.docx(12页珍藏版)》请在冰豆网上搜索。
createviewstuview2
as
select*fromStudent
whereSex='
男'
withcheckoption
查看视图:
select*fromstuview2
(2〕创建一个名为stuview3的投影视图,从数据库Student_info的Course表中查询学分大于3的所有课程的课程号、课程名、总学时。
并在创建时对该视图加密。
〔提示:
用withENCRYPTION关键子句〕
createviewstuview3
withENCRYPTION
selectCno,Cname,Total_periorfromCourse
whereCredit>
3
select*fromstuview3
(3〕创建一个名为stuview4的视图,能检索出“051”班所有女生的学号、课程号及相应的成绩。
createviewstuview4
select*fromSC
whereSno=(
selectSnofromStudent
whereClassno='
051'
andSex='
女'
)
select*fromstuview4
(4〕创建一个名为stuview5的视图,能检索出每位选课学生的学号、、总成绩。
createviewstuview5
selectStudent.Sno学号,Sname,Grade成绩
fromStudent,SC
whereStudent.Sno=SC.Sno
select*fromstuview5
假设出现如上图所示情况,
单击“查询”→IntelliSense→刷新本地缓存
然后就解决了。
(1〕查看视图stuview2的创建信息。
sp_help查看
查询表sysobjects
a、sp_helpstuview2
b、
selectso.name,sc.name,sc.colid,st.name
fromsysobjectsso,syscolumnssc,systypesst
whereSO.id=SC.id
andSO.xtype='
V'
andSO.status>
=0
andSC.xtype=ST.xusertype
andSO.name='
stuview2'
orderbySO.name,SC.colorder
(2)通过查看视图的定义脚本。
sp_helptext
sp_helptextstuview2
和表syscomments
视图的名称保存在表sysobjects的name列,定义脚本保存在表syscomments的text列〕
selectSO.name,SC.text
fromsysobjectsSO,syscommentsSC
3)查看加密视图stuview3的定义脚本。
sp_helptextstuview3
(1〕修改视图stuview3使其从数据库Student_info的Student表中查询总学时大于60的所有课程的课程号、课程名、学分。
假设视图原具有加密保护,修改视图时假设未加withencryption子句,则修改后的视图不再加密。
alterviewstuview3
withencryption
selectCno,Cname,CreditfromCourse
whereTotal_perior>
60
1〕用系统存储过程sp_rename将视图stuview4更名为stuv4。
sp_renamestuview4,stuv4
2)将视图stuv4删除。
dropviewstuv4
1〕从视图stuview2查询出班级为“051”、为“张虹”的资料。
whereClassno='
andSname='
张虹'
2〕向视图stuview2中插入一行数据,内容为:
学号班级性别家庭住址入学时间出生年月
20110005赵小林054男南京2011/09/011993/01/09
insertintostuview2
values('
20110005'
'
赵小林'
1993/01/09'
054'
2011/09/01'
'
南京'
CH'
201111'
3〕查询student,查看表中的内容有何变化。
Student表中已有“赵小林”的信息
4〕向视图stuview2中插入一行数据,内容为:
学号班级性别家庭住址入学时间出生年月
20110006赵静054女南京2011/09/011993/11/09
能成功插入吗?
原因何在?
不能插入,原因是目标视图或者目标视图所跨越的某一视图指定了WITHCHECKOPTION,而该操作的一个或多个结果行又不符合CHECKOPTION约束。
20110006'
赵静'
'
5〕修改视图stuview2中的数据。
stuview2中054班、为“赵小林”同学的家庭地址改为“扬州市”。
updatestuview2
setHome_addr='
扬州市'
whereHome_addr='
andClassno='
b.查询student,查看表中的内容有何变化
student表中的赵小林的家庭住址已发生了改变
6〕从视图stuview1中将班级为054、为“赵小林”同学删除。
deletefromstuview2
whereSname='