欢迎来到天天文库
浏览记录
ID:57440497
大小:222.26 KB
页数:6页
时间:2020-08-16
《数据库实验报告六-存储过程.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、HUNANUNIVERSITY数据库实验报告学生姓名学生学号专业班级指导老师2017年5月24日《数据库系统概论》实验报告(六)题目:PL/SQL存储过程姓名:Nomad日期:2017.5.24一、实验环境1、硬件:联想笔记本电脑2、操作系统:Windows7旗舰版3、应用软件:MySQL6.3,NavicatPreminum11.2.16二、实验内容熟悉使用存储过程来进行数据库应用程序的设计。1、统计离散数学的成绩分布情况,即按照各分数段统计人数。代码如下:DELIMITER$$CREATEPROCEDURE`sumScore`()/*统计课程离散数学各分数段人数
2、*/BEGINdeclareless60smallintdefault0;/*<60*/declareb60a70smallintdefault0;/*60~70*/declareb70a80smallintdefault0;/*70~80*/declareb80a90smallintdefault0;/*80~90*/declaremore90smallintdefault0;/*>90*/declarecountcnochar(4)default'****';SELECTCnoINTOcountcnoFROMcourseWHEREcname='数学';/*确保c
3、ourse表中有数学这门课*/SELECTCOUNT(*)INTOless60FROMscWHEREcno=countcnoANDgrade<60;SELECTCOUNT(*)INTOb60a70FROMscWHEREcno=countcnoANDgrade>=60ANDgrade<70;SELECTCOUNT(*)INTOb70a80FROMscWHEREcno=countcnoANDgrade>=70ANDgrade<80;SELECTCOUNT(*)INTOb80a90FROMscWHEREcno=countcnoANDgrade>=80ANDgrade<90
4、;SELECTCOUNT(*)INTOmore90FROMscWHEREcno=countcnoANDgrade>=90;/*将结果存入新表sumScore中*/createtablesumScore(scorestagechar(10),numbersmallint);insertintosumScorevalues('x<60',less60);insertintosumScorevalues('60<=x<70',b60a70);insertintosumScorevalues('70<=x<80',b70a80);insertintosumScorevalu
5、es('80<=x<90',b80a90);insertintosumScorevalues('x>=90',more90);END$$callsumScore();/*调用上述存储过程*/首先创建存储过程,然后再调用存储过程。结果如下:(上述结果图截自Navicat软件)可以看到,在stuinfo中新建了一个基本表sumscore,表中内容是数学课程成绩的各分数段的人数。1、统计任意一门课的平均成绩。代码如下:DELIMITER$$CREATEPROCEDURE`scoreAvg`()BEGINdeclarecurnamechar(40)defaultnull;/
6、*临时存放课程名*/declarecurcnochar(4)defaultnull;/*临时存放课程号*/declarecuravgfloat;/*临时存放平均成绩*/declaremycursorcursorfor/*定义游标*/selectcno,cnamefromcourse;declarecontinuehandlerfornotfoundsetcuravg=-1;openmycursor;/*打开游标*/fetchmycursorintocurcno,curname;/*从结果集中取第一条记录到临时变量中*/repeat/*重复取记录*/selectavg
7、(grade)intocuravgfromscwherecno=curcno;insertintoscoreAvgvalues(curcno,curname,curavg);/*将结果存入新表scoreAvg中*/fetchmycursorintocurcno,curname;untilcuravg=-1endrepeat;closemycursor;/*关闭游标*/END$$callscoreAvg();/*调用上述存储过程*/首先创建存储过程,然后再调用存储过程。结果如下:可以看到,在stuinfo中新建了一个基本表scoreavg,表中内容是各课程的平均成
此文档下载收益归作者所有