实验五视图地创建与使用.docx
- 文档编号:10976549
- 上传时间:2023-02-24
- 格式:DOCX
- 页数:13
- 大小:354.83KB
实验五视图地创建与使用.docx
《实验五视图地创建与使用.docx》由会员分享,可在线阅读,更多相关《实验五视图地创建与使用.docx(13页珍藏版)》请在冰豆网上搜索。
实验五视图地创建与使用
视图的创建与使用
一、实验目的
(1)理解视图的概念。
(2)掌握创建视图、测试、加密视图的方法。
(3)掌握更改视图的方法。
(4)掌握用视图管理数据的方法。
二、实验内容
1.创建视图
(1)创建一个名为stuview2的水平视图,从数据库Student_info的Student表中查询出性别为“男”的所有学生的资料。
并在创建视图时使用withcheckoption。
(注:
该子句用于强制视图上执行的所有修改语句必须符合由Select语句where中的条件。
)
createviewstuview2
as
select*fromStudent
whereSex='男'
withcheckoption
查看视图:
select*fromstuview2
(2)创建一个名为stuview3的投影视图,从数据库Student_info的Course表中查询学分大于3的所有课程的课程号、课程名、总学时。
并在创建时对该视图加密。
(提示:
用withENCRYPTION关键子句)
createviewstuview3
withENCRYPTION
as
selectCno,Cname,Total_periorfromCourse
whereCredit>3
查看视图:
select*fromstuview3
(3)创建一个名为stuview4的视图,能检索出“051”班所有女生的学号、课程号及相应的成绩。
createviewstuview4
as
select*fromSC
whereSno=(
selectSnofromStudent
whereClassno='051'andSex='女')
查看视图:
select*fromstuview4
(4)创建一个名为stuview5的视图,能检索出每位选课学生的学号、姓名、总成绩。
createviewstuview5
as
selectStudent.Sno学号,Sname姓名,Grade成绩
fromStudent,SC
whereStudent.Sno=SC.Sno
查看视图:
select*fromstuview5
若出现如上图所示情况,
单击“查询”→IntelliSense→刷新本地缓存
然后就解决了。
2.查询视图的创建信息及视图中的数据
(1)查看视图stuview2的创建信息。
a.通过系统存储过程sp_help查看
b.通过查询表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)通过查看视图的定义脚本。
a.通过系统存储过程sp_helptext
sp_helptextstuview2
b.通过查询表sysobjects和表syscomments
(提示:
视图的名称保存在表sysobjects的name列,定义脚本保存在表syscomments的text列)
selectSO.name,SC.text
fromsysobjectsSO,syscommentsSC
whereSO.id=SC.id
andSO.xtype='V'
andSO.status>=0
andSO.name='stuview2'
3)查看加密视图stuview3的定义脚本。
sp_helptextstuview3
3.修改视图的定义
(1)修改视图stuview3使其从数据库Student_info的Student表中查询总学时大于60的所有课程的课程号、课程名、学分。
(提示:
若视图原具有加密保护,修改视图时若未加withencryption子句,则修改后的视图不再加密。
)
alterviewstuview3
withencryption
as
selectCno,Cname,CreditfromCourse
whereTotal_perior>60
查看视图:
select*fromstuview3
4.视图的更名与删除
1)用系统存储过程sp_rename将视图stuview4更名为stuv4。
sp_renamestuview4,stuv4
2)将视图stuv4删除。
dropviewstuv4
5.管理视图中的数据
1)从视图stuview2查询出班级为“051”、姓名为“张虹”的资料。
select*fromstuview2
whereClassno='051'andSname='张虹'
2)向视图stuview2中插入一行数据,内容为:
学号姓名班级性别家庭住址入学时间出生年月
20110005赵小林054男南京2011/09/011993/01/09
insertintostuview2
values('20110005','赵小林','男','1993/01/09','054','2011/09/01',
'南京','CH','201111')
查看视图:
select*fromstuview2
3)查询student,查看表中的内容有何变化。
Student表中已有“赵小林”的信息
select*fromStudent
4)向视图stuview2中插入一行数据,内容为:
学号姓名班级性别家庭住址入学时间出生年月
20110006赵静054女南京2011/09/011993/11/09
能成功插入吗?
原因何在?
不能插入,原因是目标视图或者目标视图所跨越的某一视图指定了WITHCHECKOPTION,而该操作的一个或多个结果行又不符合CHECKOPTION约束。
insertintostuview2
values('20110006','赵静','女','1993/01/09','054','2011/09/01',
'南京','CH','201111')
5)修改视图stuview2中的数据。
a.将stuview2中054班、姓名为“赵小林”同学的家庭地址改为“扬州市”。
updatestuview2
setHome_addr='扬州市'
whereHome_addr='南京'andSname='赵小林'andClassno='054'
查看视图:
select*fromstuview2
b.查询student,查看表中的内容有何变化
student表中的赵小林的家庭住址已发生了改变
select*fromStudent
6)从视图stuview1中将班级为054、姓名为“赵小林”同学删除。
deletefromstuview2
whereSname='赵小林'
查看视图:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 视图 创建 使用