实验报告五视图的创建与使用.docx
《实验报告五视图的创建与使用.docx》由会员分享,可在线阅读,更多相关《实验报告五视图的创建与使用.docx(11页珍藏版)》请在冰豆网上搜索。
实验报告五视图的创建与使用
实验题目
视图的创建与使用
1、实验内容
视图的创建与使用
2、实验目的与要求
1、理解视图的概念。
2、掌握视图创建测试加密视图的方法。
3、掌握更改视图的方法。
4、掌握用视图管理数据的方法。
3、实验内容
1、创建视图
(1)
createviewstuview1
as
select*
fromstudent
wheresex='男'
WITHCHECKOPTION
select*
fromstuview1
(2)
createviewstuview2
withencryption
as
selectcno,cname,total_perior
fromcourse
wherecredit>3
selectcno,cname,total_perior
fromstuview2
(3)
createviewstuview3
as
selectsc.sno,o,grade
fromStudent,Course,sc
wherestudent.sno=sc.snoando=oandclassno='051'andsex='女'
selectsno,cno,grade
fromstuview3
(4)
createviewstuview4(Sno,Sname,SumGrade)
as
selectSC.Sno,Sname,sum(Grade)
fromSC,Student
whereSC.Sno=Student.Sno
groupbySC.Sno,Sname
select*
fromstuview4
2、查询视图的创建信息及视图中的数据
(1)
方法一execsp_helpstuview1
2方法二
SysObjects中就保存了数据库中所有对象的信息,如:
SELECT*FROMSysObjectsWHEREtype='U'(所有表的信息)
SELECT*FROMSysObjectsWHEREtype='V'(所有视图的信息)
SELECT*FROMSysObjectsWHEREtype='P'(所有存储过程的信息)
selectso.name,sc.name,sc.colid,st.name
fromsysobjectsso,syscolumnssc,systypesst
whereSO.id=SC.idandSO.xtype='V'andSO.status>=0
andSC.xtype=ST.xusertype
andSO.name='stuview1'
orderbySO.name,SC.colorder
(2)
方法一
sp_helptextstuview1
方法二、
selectSO.name,SC.text
fromsysobjectsSO,syscommentsSC
whereSO.id=SC.idandSO.xtype='V'andSO.status>=0andSO.name='stuview1'
(3)sp_helptextstuview2
3、修改视图中的定义
alterviewstuview2
withENCRYPTION
as
selectCno,Cname,Credit
fromCourse
whereTotal_perior>60
select*
fromstuview2
4、视图的更名与删除
(1)sp_renamestuview4,stuv4
(2)dropviewstuv4
5、管理视图中的数据
(1)
select*
fromstuview1
whereclassno='051'andsname='张虹'
(2)
insertintostuview1
values('20110005','许华','男','1993/01/09','054','2011/09/01','南京')
select*
fromStudent
insertintostuview1(Sno,Sname,Classno,Sex,home_addr,entrance_data,Birth)
values('20110007','赵静','054','女','南京','2011-09-01','1993-01-09')
不允许插入,因为在创建视图stuview1时应用了WITHCHECKoption语句限制了sex只能为‘男’所以不允许插入性别为女的资料。
(3)
updatestuview1
sethome_addr='扬州市'
whereClassno='054'andSname='许华'
select*
fromStudent
(4)delete
fromstuview1
whereSname='许华'
select*
fromStudent