哈工大 英才学院 数据库 实验四.docx
- 文档编号:28231160
- 上传时间:2023-07-09
- 格式:DOCX
- 页数:12
- 大小:103.57KB
哈工大 英才学院 数据库 实验四.docx
《哈工大 英才学院 数据库 实验四.docx》由会员分享,可在线阅读,更多相关《哈工大 英才学院 数据库 实验四.docx(12页珍藏版)》请在冰豆网上搜索。
哈工大英才学院数据库实验四
数据库系统应用
实验报告
实验4SQL的视图及存储过程操作
学号:
姓名:
主讲教师:
张建国
指导教师:
张建国
提交日期:
2012年12月5日
计算机科学与技术学院
2010年秋季学期
1.实验任务
(1)练习视图操作,并记录操作的语句、问题、问题产生的原因及解决的过程。
(2)练习存储过程操作,并记录操作的语句、问题、问题产生的原因及解决的过程。
(3)练习自定义函数操作,并记录操作的语句、问题、问题产生的原因及解决的过程。
2.实验内容
2.1视图
(1)创建视图
(2)视图更新
(3)视图查询
(4)自己再设计一些感兴趣的操作
2.2存储过程
(1)创建存储过程
(2)执行存储过程
2.3自定义函数
(1)标量函数
(2)内嵌表函数
(3)调用函数
3.完成内容
3.1视图
(1)创建视图
1)创建某学院全体学生的视图,属性包括:
学号、姓名、性别、年龄、高考分数、定向否、省份。
SQL语句:
createviewyingcai_student(Sno,Sname,Sex,Sage,Exmascore,Directional,Province)
as
selectSno,Sname,Sex,year(GETDATE())-year(birthday),Exmascore,Directional,Province
fromStudentjoinSchoolonStudent.Schoolno=School.Schoolno
whereSchoolname='英才学院';
操作结果截图:
问题及解决状况:
无
2)创建某门课程的成绩单视图,属性包括:
学号、姓名和分数。
SQL语句:
createviewwuli_chengji
as
selectStudent.Sno,Sname,Totalscore
fromStudentjoinSConStudent.Sno=SC.Sno
joinCourseonSC.Cno=Course.Cno
whereCname='大学物理';
操作结果截图:
问题及解决状况:
无
3)创建某个学生的成绩单视图,属性包括:
学号、姓名、课名、学分和分数
SQL语句:
createviewdiaochan_chengji
as
selectStudent.Sno,Sname,Cname,Credit,Totalscore
fromStudentjoinSConStudent.Sno=SC.Sno
joinCourseonSC.Cno=Course.Cno
whereSname='貂蝉';
操作结果截图:
问题及解决状况:
无
4)创建全体学生的平均成绩视图:
属性包括:
学号和平均成绩
SQL语句:
createviewall_Gavg(Sno,Avgscore)
as
selectStudent.Sno,AVG(Totalscore)
fromStudentjoinSConStudent.Sno=SC.Sno
joinCourseonSC.Cno=Course.Cno
groupbyStudent.Sno;
操作结果截图:
问题及解决状况:
无
5)创建各省平均高考分数的视图,属性包括:
省份和平均考分。
SQL语句:
createviewpv_Avg(Province,Avgexmascore)
as
selectProvince,AVG(Exmascore)
fromStudent
groupbyProvince;
操作结果截图:
问题及解决状况:
无
6)创建女生部学生的视图:
内容包括:
学号、姓名、出生日期、学院名。
SQL语句:
createviewall_girl
as
selectSno,Sname,Birthday,Schoolname
fromStudentjoinSchoolonStudent.Schoolno=School.Schoolno
whereSex='女';
操作结果截图:
问题及解决状况:
无
(2)视图更新
利用视图完成下列操作:
1)在某学院视图中插入一个新同学的全部数据。
SQL语句:
INSERTINTOyingcai_studentVALUES('6100800115','王珞丹','女',20,538,1,'四川');
操作结果截图:
问题及解决状况:
问题:
无法插入
原因:
生日为计算结果,不能插入
2)在某学院视图中插入一个新同学的部分数据。
SQL语句:
INSERTINTOyingcai_student(Sno,Sname,Sex)VALUES('6100800115','王珞丹','女');
操作结果截图:
问题及解决状况:
问题:
部分数据无法插入到视图中,只能插入到表中
3)将全体学生平均成绩视图中的某学生的成绩改为90分。
SQL语句:
updateall_GavgsetAvgscore=90whereSnoin(selectSnofromStudentwhereSname='张飞');
操作结果截图:
问题及解决状况:
问题:
无法插入
原因:
平均分为计算结果,不能插入
(3)视图查询
1)在某学院全体学生视图中查询该学院某个学生的数据。
SQL语句:
select*fromyingcai_studentwhereSname='张飞';
操作结果截图:
问题及解决状况:
无
2)查询某门课程的成绩单,并按分数降序排列。
SQL语句:
select*fromwuli_chengjiorderbyTotalscoredesc;
操作结果截图:
问题及解决状况:
无
3)查询某门学生的成绩单,并按课号升序排列。
SQL语句:
selectSno,diaochan_chengji.Sname,diaochan_chengji.Cname,diaochan_chengji.Credit,Totalscorefromdiaochan_chengjijoinCourseondiaochan_chengji.Cname=Course.CnameorderbyCno;
操作结果截图:
问题及解决状况:
问题:
只有一门课,体现不出升序
4)查询某省高考的平均成绩,并按平均成绩降序排列。
SQL语句:
selectProvince,Avgexmascorefrompv_sheetorderbyAvgexmascoredesc;
操作结果截图:
问题及解决状况:
无
(4)自己再设计一些感兴趣的操作
查询英才学院所有学生的学号和年龄,并按年龄降序排列。
SQL语句:
selectSno,Sagefromyingcai_studentorderbySagedesc;
操作结果截图:
问题及解决状况:
无
2.2存储过程
(1)创建存储过程
1)创建无参数存储过程
创建查询全体学生平均成绩的存储过程:
属性包括:
学号和平均成绩。
SQL语句:
操作结果截图:
问题及解决状况:
2)创建单参数存储过程
创建按学号查询某学生情况的存储过程;
SQL语句:
操作结果截图:
问题及解决状况:
创建按姓名查询学生情况的存储过程。
3)创建多参数存储过程
创建查询某个学生选修某门课程的分数的存储过程。
SQL语句:
操作结果截图:
问题及解决状况:
(2)执行存储过程
利用
(1)创建的存储过程执行某些操作。
SQL语句:
操作结果截图:
问题及解决状况:
2.3自定义函数
(1)标量函数
1)创建一个将角度转换成弧度的标量函数。
SQL语句:
操作结果截图:
问题及解决状况:
2)创建一个统计学生总数的标量函数。
SQL语句:
操作结果截图:
问题及解决状况:
3)创建一个计算某学生平均成绩的标量函数。
SQL语句:
操作结果截图:
问题及解决状况:
(2)内嵌表函数(选做)
1)创建一个查询按学号查询学生情况的函数。
SQL语句:
操作结果截图:
问题及解决状况:
2)创建一个统计各学院学生人数的函数,属性包括:
学院名称和人数。
SQL语句:
操作结果截图:
问题及解决状况:
(3)调用函数
设计一些操作,调用自己创建的函数。
说明:
上述操作可适当修改,以便更好地理解相关内容。
SQL语句:
操作结果截图:
问题及解决状况:
4.未完成内容
无
5.实验总结
(1)实验中遇到的问题,问题产生的原因,如何解决问题,还有哪些问题未得到解决;
问题:
插入部分数据显示插入成功却找不到
产生的原因:
部分数据只能插入到表中,插入不到视图中
解决方法:
无
(2)本次实验的体会。
对视图有了更加深入的了解
6.意见与建议
希望实验室的SQLServer早日更新为2008/2012。
实验评价:
指导
教师
评语
实验成绩
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 哈工大 英才学院 数据库 实验四 英才 学院 实验