实验六:存储过程

实验六:存储过程

ID:14924149

大小:47.50 KB

页数:5页

时间:2018-07-31

实验六:存储过程_第1页
实验六:存储过程_第2页
实验六:存储过程_第3页
实验六:存储过程_第4页
实验六:存储过程_第5页
资源描述:

《实验六:存储过程》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、题目:实验六PL/SQL姓名Vivian日期2006-1-1实验内容及完成情况:实验环境介绍:硬件:CPU:P3800硬盘:30G内存:512M系统:Windows2000AdvancedServer在实验六之前,在安装过程中自动建立的“学生课程数据库”中共有三张关系表Student、Course和SC,登陆的用户名为SYSTEM,密码为MANAGER。接下来的实验就是对学生课程数据库,编写存储过程。(一)统计离散数学的成绩分布情况,即按照各分数段统计人数。1.创建存储过程1)创建需要的表结构。因为存储过程在执行后在客户端并没有返回

2、值,因此需要建立一个表存放执行后的结果,并返回到客户端显示。根据实验要求,我们要统计选修了离散数学的学生的成绩分布,因此我们建立表Rank,其中第一列division显示成绩分段划分,第二列number显示的是成绩在该分数段的学生人数。CREATETABLERank(divisionCHAR(20),numberINT);2)编写存储过程。CREATEORREPLACEPROCEDUREstatistic_mark(nameCHAR(50))//存储过程带有一个字符型参数值,便于统计不同科目的分数分布情况ASDECLAREless6

3、0INT:=0;//分为五个分数段,并置初始值为0b60a70INT:=0;b70a80INT:=0;b80a90INT:=0;more90INT:=0;curcnoCHAR(4);//设字符型变量curcno存放输入的课程名称参数BEGINSELECTcnoINTOcurcno//根据课程名称在Course表中查询查询该课程号FROMCourseWHEREcname=name;IFNOTFOUNDTHEN//如果不存在用户输入的课程名称,返回错误信息RAISEEXCEPTION'输入错误,没有该课程';ENDIF;SELECTco

4、unt(*)INTOless60//查询分数低于60分的学生人数FROMscWHEREcno=curcnoANDgrade<60;SELECTcount(*)INTOb60a70//查询分数在60到70之间的学生人数FROMscWHEREcno=curcnoANDgrade>=60ANDgrade<70;SELECTcount(*)INTOb70a80//查询分数在70到80之间的学生人数FROMscWHEREcno=curcnoANDgrade>=70ANDgrade<80;SELECTcount(*)INTOb80a90//查询

5、分数在80到90之间的学生人数FROMscWHEREcno=curcnoANDgrade>=80ANDgrade<90;SELECTcount(*)INTOmore90//查询分数高于90的学生人数FROMscWHEREcno=curcnoANDgrade>=90;//向表Rank中插入五条记录,显示成绩分布情况INSERTINTORankVALUES('[0,60)',less60);INSERTINTORankVALUES('[60,70)',b60a70);INSERTINTORankVALUES('[70,80)',b70a

6、80);INSERTINTORankVALUES('[80,90)',b80a90);INSERTINTORankVALUES('[90,100]',more90);END;2.执行存储过程首先执行编写好的存储过程statistic_mark,然后在表Rank中查看执行结果。PERFORMPROCEDUREstatistic_mark(‘离散数学’);SELECT*FORMRank;(二)统计任意一门课的平均成绩。1.创建存储过程1)创建需要的表结构。根据实验要求,我们要统计任意一门课的平均成绩,因此我们建立表Avggrade,其中

7、第一列cname显示统计的课程名称,第二列avgg显示选修了该课程的学生平均成绩。CREATETABLEAvggrade(cnameCHAR(50),avggNUMERIC(10,6));2)编写存储过程。CREATEORREPLACEPROCEDUREcollect_avggrade()ASDECLARE//声明变量curnameCHAR(50);curcnoCHAR(4);curavggNUMERIC(10,6);CURSORmycursorFOR//声明游标mycursor查询课程号和名称SELECTcno,cnameFROM

8、course;BEGINOPENmycursor;//打开游标IFmycursor%ISOPENTHEN//条件控制,游标打开时进行以下处理LOOP//循环控制FETCHmycursorINTOcurcno,curname;//游标推

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。