数据库实验报告文档格式.docx
《数据库实验报告文档格式.docx》由会员分享,可在线阅读,更多相关《数据库实验报告文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
二、实验内容与步骤
1、进入QRACLE的SQL*PLUS环境;
2、用于Createview语句定义视图;
(1)建立信息系学生的视图,然后向其中插入一计算机系学生数据,分别查看视图和基本表;
(2)建立信息系学生的视图,并要求进行修改和插入操作时仍需保证该视图只有信息系学生,然后向其中插入一计算机系学生,比较
(1),
(2)的不同;
(3)建立信息系选修了1号课程且成绩在90分以上的学生的视图;
(4)将学生的学号及他的平均成绩定义为一个视图S_G;
(5)将SC表中成绩在相应课程平均成绩之上的元组定义成一个视图GOOD-SC;
3、通过视图对表进行操作
(1)在信息系学生的视图中找出年龄小于20岁的学生;
(2)查询信息系选修了1号课程且成绩在90分以上的学生;
(3)在S_G视图中查询平均成绩在90分以上的学生学号和平均成绩;
(4)创建CS-KC视图,包括计算机专业各学生的学号、其选修的课程号及成绩,要保证对该视图的修改都要符合专业名为“计算机”这个条件;
(5)查找计算机专业的学生学号和选修的课程号;
(6)向S-G视图中插入一元组。
4、游标的操作
(1)用简单循环控制从EMP表中取出某一部门的员工姓名和工资,存入TEMP表中;
(2)采用FOR循环重做上题;
(3)游标的FOR循环内使用查询;
(4)查询EMP表某部门的雇员情况,如果某雇员的工资小于800,掌握将其工资设为800;
(5)为职工涨10%的工资。
从最低工资开始涨,最后工资总额限制在50万元以内;
(6)根据DEPT表中返回的部门号,从EMP表中查询该部门的雇员情况,使用带参数的游标;
(7)统计EMP表中工资大于3000的记录数,而且给工资增长10%。
三、实验结果与结论
2、用于Createview语句定义视图
(1)建立信息系学生的视图,然后向其中插入一计算机系学生数据,分别查看视图和基本表
createviewIS_pc
2>
as
3>
selectsno,sname,ssex,sage,sdept
4>
froms
5>
wheresdept='
pc'
insertintoIS_pcvalues('
014'
'
李昕'
女'
19'
ac'
);
处理了1行。
(2)建立信息系学生的视图,并要求进行修改和插入操作时仍需保证该视图只有信息系学生,然后向其中插入一计算机系学生,比较
(1),
(2)的不同;
SQLWKS>
createviewIS_ac
6>
withcheckoption
insertintoIS_acvalues('
班国龙'
男'
20'
ORA-01402:
视图WITHCHECKOPTIDN违反where子句
(3)建立信息系选修了1号课程且成绩在90分以上的学生的视图;
createviewIS_S1(sno,sname,grade)
selects.sno,sname,grade
froms,sc
IS'
ands.sno=sc.sno
7>
ando='
1'
;
createviewIS_S2
selectsno,sname,grade
fromIS_S1
wheregrade>
=90;
select*fromIS_S2;
SNOSNAMEGRADE
-------------------------
已选择0行。
(4)将学生的学号及他的平均成绩定义为一个视图S_G;
createviewS_G(sno,Gavg)
selectsno,AVG(grade)
fromsc
groupbysno;
语句已处理。
select*fromS_G;
SNOGAVG
---------------
00185
00289
00375
00493
00581
00663
00782
00884
00995
01083
已选择10行。
(5)将SC表中成绩在相应课程平均成绩之上的元组定义成一个视图GOOD-SC;
createviewC_G(cno,Gavg)
selectcno,AVG(grade)
groupbycno;
createviewGOOD_SC
selectsno,o,grade
fromsc,C_G
Gavg;
select*fromC_G;
CNOGAVG
--------------
0181.3333333
0279.6666667
0388
0485.5
已选择4行。
selectdistinct*fromGOOD_SC;
SNOCNOGRADE
-------------------
0010185
0020489
0040293
0050381
0070482
0080184
0090395
0100283
已选择8行。
3、通过视图对表进行操作
(1)在信息系学生的视图中找出年龄小于20岁的学生;
selectsage
fromIS_pc
wheresage<
20;
SAGE
----------
19
已选择1行。
(2)查询信息系选修了1号课程且成绩在90分以上的学生;
selectgrade
GRADE
(3)在S_G视图中查询平均成绩在90分以上的学生学号和平均成绩;
selectGavg
fromS_G
wheregavg>
=90
GAVG
93
95
已选择2行。
(4)创建CS-KC视图,包括计算机专业各学生的学号、其选修的课程号及成绩,要保证对该视图的修改都要符合专业名为“计算机”这个条件;
createviewCS1_KC
selects.sno,o,grade
fromsc,s
groupbys.sno,o,grade
8>
withcheckoption;
selectdistinct*fromCS1_KC;
已选择3行。
(7)(5)查找计算机专业的学生学号和选修的课程号;
selectsc.sno,cno
fromsc,IS_pc
andsc.sno=IS_pc.sno;
SNOCNO
---------
00402
00704
01002
(8)(6)向S-G视图中插入一元组。
insertintoS_Gvalues('
011'
90'
4、游标的操作:
结果如图所示:
(3)游标的FOR循环内使用查询
(4)查询EMP表某部门的雇员情况,如果某雇员的工资小于800,掌握将其工资设为800;
(5)为职工涨10%的工资。
(6)根据DEPT表中返回的部门号,从EMP表中查询该部门的雇员情况,使用带参数的游标;
(8)(7)统计EMP表中工资大于3000的记录数,而且给工资增长10%。
四、过程分析和建议
在本次实验中,我熟悉了视图和游标的操作,从课堂到实验,我更加深刻理解了视图和游标的操作,将老师在课堂上的内容应用于实践,让自己的能力得到了提升。
在这次试验我发现:
1.在游标的操作中,游标的赋值宏定义只能在SQL/PULS环境下才能识别。
2.在向S-G视图中插入元组时,由于创建视图时加上了语句withcheckoption,权限为不能通过视图对表进行插入,以免修改视图是对表造成误操作。