![[中学作文]存储过程实验.doc_第1页](http://file.renrendoc.com/FileRoot1/2019-1/19/5055a726-b3e1-4d09-a8d7-eb16894aed27/5055a726-b3e1-4d09-a8d7-eb16894aed271.gif)
![[中学作文]存储过程实验.doc_第2页](http://file.renrendoc.com/FileRoot1/2019-1/19/5055a726-b3e1-4d09-a8d7-eb16894aed27/5055a726-b3e1-4d09-a8d7-eb16894aed272.gif)
![[中学作文]存储过程实验.doc_第3页](http://file.renrendoc.com/FileRoot1/2019-1/19/5055a726-b3e1-4d09-a8d7-eb16894aed27/5055a726-b3e1-4d09-a8d7-eb16894aed273.gif)
![[中学作文]存储过程实验.doc_第4页](http://file.renrendoc.com/FileRoot1/2019-1/19/5055a726-b3e1-4d09-a8d7-eb16894aed27/5055a726-b3e1-4d09-a8d7-eb16894aed274.gif)
![[中学作文]存储过程实验.doc_第5页](http://file.renrendoc.com/FileRoot1/2019-1/19/5055a726-b3e1-4d09-a8d7-eb16894aed27/5055a726-b3e1-4d09-a8d7-eb16894aed275.gif)
全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、统计“数据库原理”的成绩分布情况,即按照各分数段统计人数1、创建需要的表create table rank(分数段 char(20), 人数 int);2、创建存储过程CREATE PROCEDURE statistic_mark AS DECLARE less60 INT, b60a70 INT , b70a80 INT , b80a90 INT , more90 INT , curcno CHAR(4); /*设字符型变量curcno 存放输入的课程名称参数*/BEGIN SELECT curcno=cno /*根据课程名称在Course 表中查询查询该课程号*/ FROM Course WHERE cname = 数据库; SELECT less60=count(*) /*查询分数低于60 分的学生人数*/ FROM sc WHERE cno = curcno AND grade = 60 AND grade = 70 AND grade = 80 AND grade = 90; /* 向表Rank 中插入五条记录,显示成绩分布情况*/ INSERT INTO Rank VALUES(0,60),less60); INSERT INTO Rank VALUES(60,70),b60a70); INSERT INTO Rank VALUES(70,80),b70a80); INSERT INTO Rank VALUES(80,90),b80a90); INSERT INTO Rank VALUES(90,100,more90); END; 3、执行存储过程exec statistic_mark;4、查询结果select * from rank;二、统计任意一门课的平均成绩1、创建需要的表CREATE TABLE Avggrade( cname CHAR(50), avgg NUMERIC(10, 6); 2、创建存储过程CREATE PROCEDURE collect_avggrade AS DECLARE /*声明变量*/ curname CHAR(50), curcno CHAR(4), curavgg NUMERIC(10, 6); declare mycursor CURSOR FOR /*声明游标mycursor 查询课程号和名称*/ SELECT cno, cname FROM course; BEGIN OPEN mycursor; /*打开游标*/ FETCH mycursor INTO curcno, curname; while (fetch_status=0) begin SELECT curavgg=AVG(grade) FROM SC /*求该课程的平均值送变量 */ WHERE cno = curcno; INSERT INTO Avggrade VALUES(curname, curavgg); /* 向Avggrade 表中插入记录,显示课程名称和平均成绩*/ FETCH mycursor INTO curcno, curname; end CLOSE mycursor; /*关闭游标*/ END;3、执行存储过程 exec collect_avggrade;4、查询结果SELECT * FROM Avggrade;三、将学生选课成绩从百分制改为等级制(即A、B、C、D、E)1、在SC表中加入新列newgradeALTER TABLE SC ADD newgrade CHAR(1); -由于之前的成绩值为整数型,而修改后的结果为字符型,因此在SC中先增加一列newgrade,存放换算后的成绩 2、创建存储过程法(1)、用IF.ELSE.语句CREATE PROC change_gradeAS DECLARE -声明变量 chgrade CHAR(1), curgrade int; declare mycursor cursor for select grade from sc; BEGIN open mycursor; FETCH mycursor INTO curgrade; while fetch_status=0 -循环处理每个学生的成绩 begin IF curgrade 60 -如果成绩低于60 分,将成绩置为E select chgrade = E; ELSe IF curgrade 60&70,将成绩置为D select chgrade = D; ELSe IF curgrade 70&80,将成绩置为C select chgrade = C; ELSe IF curgrade 80&90,将成绩置为B select chgrade = B; ELSE -如果成绩高于90 分,将成绩置为A select chgrade = A; UPDATE SC SET newgrade = chgrade -/修改newgrade 列值,填入换算后的成绩 where grade=curgrade; FETCH mycursor INTO curgrade; end; close mycursor; END;法(2)、用when语句CREATE PROCEDURE change_grade AS DECLARE curgrade int; declare mycursor cursor for select grade from sc; BEGIN open mycursor; FETCH mycursor INTO curgrade; while fetch_status=0 begin UPDATE SC SET newgrade = -修改newgrade 列值,填入换算后的成绩 case when curgrade 60 -如果成绩低于60 分,将成绩置为E then E when curgrade 60&70,将成绩置为D then D when curgrade 70&80,将成绩置为C then C when curgrade 80&= 90 -如果成绩高于90 分,将成绩置为A then A end where grade=curgrade FETCH mycursor INTO curgrade; end close mycursor;end3、执行存储过程exec change_grade;4、修改表SCALTER TABLE SC DROP COLUMN grade; -删除原有的列grade EXEC sp_rename sc.newgrade, Grade, COLUMN; -重命名newgrade列为Grade5、查询结果select * from sc;四、删除存储过程1. 删除存储过程 statisti
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 蒲城县新高一数学试卷
- 全国高三数学试卷
- 坪埔中学二模数学试卷
- 年级下册五单元数学试卷
- 2025辽宁中医药大学面向社会招聘高层次人才3人(第三批)考试模拟试题及答案解析
- 2025年下半年浙江省省属事业单位集中招聘人员342人笔试模拟试题及答案解析
- 2025云南昭通市政务服务管理局招聘城镇公益性岗位工作人员2人考试备考试题及答案解析
- 2025年甘肃省庆阳市环县县城学校选聘专任教师142人考试参考题库附答案解析
- 平阴县实验小学数学试卷
- 2025年中国邮政集团有限公司安徽省分公司社会招聘笔试参考题库附答案解析
- 洗煤厂安全知识培训课件
- 2025年中国邮政集团招聘笔试参考题库含答案解析
- 合同制合同范例
- 2024年司法考试刑法真题及答案
- 《隔离技术规范》课件
- 《云南省学校安全条例(修订草案)》知识培训
- 面向工业智能化时代的新一代工业控制体系架构白皮书
- 四年级下册数学方程题100道及答案
- 浙江省二轻集团招聘笔试题库2024
- 护士健康宣教指导手册系列老年病房
- 贵州省遵义市红花岗区2024届小升初模拟数学测试卷含解析
评论
0/150
提交评论