数据库-存储过程触发器和函数实验报告.docx

数据库-存储过程触发器和函数实验报告.docx

ID:50127957

大小:280.81 KB

页数:11页

时间:2020-03-05

数据库-存储过程触发器和函数实验报告.docx_第1页
数据库-存储过程触发器和函数实验报告.docx_第2页
数据库-存储过程触发器和函数实验报告.docx_第3页
数据库-存储过程触发器和函数实验报告.docx_第4页
数据库-存储过程触发器和函数实验报告.docx_第5页
资源描述:

《数据库-存储过程触发器和函数实验报告.docx》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、存储过程、触发器和用户自定义函数实验兰州大学数据库实验报告实验内容一练习教材中存储过程、触发器和用户自定义函数的例子。教材中的BookSales数据库,在群共享中,文件名为BookSales.bak。实验内容二针对附件1中的教学活动数据库,完成下面的实验内容。1、存储过程(1)创建一个存储过程,该存储过程统计“高等数学”的成绩分布情况,即按照各分数段统计人数。CREATEProcMATH_NUM@MATHCHAR(20)='高等数学'ASSELECT@MATHascanme,count(casewhensc

2、ore>=90then1end)as[90以上],count(casewhenscore>=80andscore<90then1end)as[80-90],count(casewhenscore>=70andscore<80then1end)as[70-80],count(casewhenscore>=60andscore<70then1end)as[60-70],count(casewhenscore<60then1end)as[60以下]FROMstudy,courseWHEREstudy.cno=co

3、urse.cnoandcourse.cname=@MATHGROUPBYcourse.cname运行结果:(2)创建一个存储过程,该存储过程有一个参数用来接收课程号,该存储过程统计给定课程的平均成绩。CREATEProcAVG_SCORE@cnoCHAR(5)ASSELECT@cnoas课程号,course.cnameas课程名,STR(AVG(score),5,2)as平均成绩FROMstudy,courseWHEREstudy.cno=course.cnoandcourse.cno=@cnoGROUPB

4、Ycourse.cname运行结果:(3)创建一个存储过程,该存储过程将学生选课成绩从百分制改为等级制(即A、B、C、D、E)。CREATEProcSCORE_CHANGEASSELECTcourse.cnameas课程名,study.snoas学号,study.cnoas课程号,study.scoreas成绩,casewhenscore>=90andscore<=100then'A'whenscore>=80andscore<90then'B'whenscore>=70andscore<80then'C'

5、whenscore>=60andscore<70then'D'whenscore<60then'E'endas'等级'fromstudy,coursewherestudy.cno=course.cno运行结果:(4)创建一个存储过程,该存储过程有一个参数用来接收学生姓名,该存储过程查询该学生的学号以及选修课程的门数。CREATEProcSTUDENT_STUDY@namechar(8)ASselect@nameas姓名,study.snoas学号,count(cno)as选修门数fromstudy,stud

6、entwherestudy.sno=student.snoandsname=@namegroupbystudy.sno运行结果:(5)创建一个存储过程,该存储过程有两个输入参数用来接收学号和课程号,一个输出参数用于获取相应学号和课程号对应的成绩。CREATEProcSTU_COR_SCORE@snochar(5),@cnochar(4),@wordsmallintoutputASselect@word=scorefromstudywheresno=@snoandcno=@cno运行结果:2、触发器(1)为s

7、tudy表创建一个UPDATE触发器,当更新成绩时,要求更新后的成绩不能低于原来的成绩。CREATETRIGGERUPDATE_SCOREONstudyinsteadofupdateasdeclare@sno2char(5),@cno2char(4),@score1smallint,@score2smallintselect@sno2=sno,@cno2=cno,@score2=scorefrominsertedselect@score1=scorefromdeletedif(@score2>=@score

8、1)updatestudysetscore=@score2wherestudy.cno=@cno2andstudy.sno=@sno2go运行结果:按要求sno=98604cno=C604score=85改成89不能改成85了(2)为study表创建一个DELETE触发器,要求一次只能从study表中删除一条记录。CREATETRIGGERDEL_STUDYONstudyinsteadofDELETEASbegi

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

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

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