《《MySQL数据原理与应用》实验报告实验8存储过程与游标.docx》由会员分享,可在线阅读,更多相关《《MySQL数据原理与应用》实验报告实验8存储过程与游标.docx(8页珍藏版)》请在优知文库上搜索。
1、实验8存储过程与游标实验目的令了解存储的种类和优势;掌握存储过程的创建、调用、查看、修改和删除;令了解变量的类别和使用;令掌握基本的流程控制语句;通过不同的工具熟悉管理存储过程。要求:所有操作结果均以截图的形式保存,截取的图上尽可能的出现自己的个人信息。实验设备PC机一台;Win7/10操作系统;MySQL8.0、NavicatWorkbench0【实验报告提交】在完成本实验文档要求的所有任务后,加上版权(水印),将文件以“学号姓名+实验8存储过程与游标”命名,并转换成PDF文件,提交至超星平台本课程对应的作业文件夹中。实验任务任务1使用WHILE语句求1-100累加和任务2使用LOOP语句、
2、ITERATE语句和LEAVE语句求1-100累加和任务3创建存储过程求某同学的成绩任务4使用Workbench工具求1-100累加和任务5使用Navicat工具求某系的人数任务6实验过程中常见错误解决方法实验流程任务1使用WHILE语句求1-100累加和【任务需求】建立一个存储过程,命名为us.whilew,在BEGIN和END语句块中是接下来要输入的存储过程内容,在BEGIN和END语句块中声明变量“sum”(用来存放累加和)和“num”以及它们的变量类型INT,并分别赋值为O和1,通过WHILE循环,将1到100之间的所有数字累加到变量sum中,循环会在num的值增加到101时停止。执行
3、循环体。【任务参考效果图】mysqlDELIMITER;mysqlCALLs_while;sumI5050I1rowinset(0.00sec)QueryOK,0rowsaffected(0.01sec)mysql.【任务完成效果图】任务2使用LoOP语句、ITERATE语句和LEAVE语句求IToO累加和【任务需求】建立一个存储过程,命名为“sumoop”,在BEGIN和END语句块中是接下来要输入的存储过程内容,在BEGIN和END语句块中声明变量“sum”(用来存放累加和)和“num”以及它们的变量类型INT,并分别赋值为“0”和“1”,使用LOOP语句、ITERATE语句和LEAVE语
4、句计算出1到100之间所有数字的累加和。每次循环将num加1,如果num小于等于IO0,则使用ITERATE跳过本次循环;如果num大于100,则使用LEAVE退出循环,最后,使用SELECT语句检索出变量sum的最终值。【任务参考效果图】raysqlCALLsum_loop;4hsum+I5050I1rowinset(0.01sec)QueryOK,0rowsaffected(0.01sec)raysql.【任务完成效果图】请按照任务需求将完成的效果图放在下方。任务3创建存储过程求某同学的成绩【任务需求】创建一个存储过程,命名为“student_grade,该存储过程有一个IN模式的参数“s
5、_name,数据类型为VARCHAR。BEGIN和END语句块中是存储的内容,在BEGIN和END语句块之间,SELECT语句根据参数s_name查询“tb_student”数据表和“tb_grade”数据表,输出学生的课程号以及课程分数。【任务参考效果图】ImySq1CALLStUdent_grade(普杰宏);course_idgrade_scoreK200759K300581K300369K500179+-卜+4rowsinset(0.00sec)RUeryOK,0rowsaffected(0.01sec)【任务完成效果图】请按照任务需求将完成的效果图放在下方。任务4使用Workbenc
6、h工具求1-100累加和【任务需求】使用数据库图形化管理工具Workbench创建和使用存储过程,求1-100的累 加和。【任务参考效果图】Ll (ditQutry tbs $rvtr Xools SCriPtiM HtlPEffi布后反圆厘斑NaVIgatof SCHfMASq Rter oects booOtore db-meetmg fe* db.0udy田 Tables Views W Stored Procedures CursoreQrade 囚 navcMjoop s.repeM 囚 s.while student.grde 因 SumJoop 0 workbench. Func
7、tionsAdmanistrMion Schemes夕,具 O H gsiE * Q Jb 包 call dbvstudy.workbenchMwhile()jExport:WfapCeIContant: EIftformebonSchema: db_studyResult 1 Output(J ActonOutput Tim ActtocO1 16823 py c*ges to wob停止Q施3自动换行2信息事qSQL雌COUNT(*)69【任务完成效果图】请按照任务需求将完成的效果图放在下方。任务6实验过程中常见错误解决【任务需求】在实验过程中出现如下图所示的错误,请调试,并写出解决办法。
8、【实验思考】1.创建存储过程提示“ERROR1064(42000)”在Windows系统的命令提示符工具中使用SQL命令行创建存储过程,错误图如下图所示。nysqlCREATEPROCEDUREs,while()-BEGIN-DECLAREsumINT;SftRk1064(42fi0):YouhaveanerrorinyourQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenearatline3问题原因:解决方案:2 .为用户变量赋值失败在Windows系统的命令提示符工具中使用SELECT语句为用户变量赋值不成功,错误图如下图所示。图9.32为用户变量赋值失败错误图问题原因:解决方案:3 .调用存储过程进入死循环调用存储过程“deadlock”后,WindOWS系统的命令提示符工具既无法接收命令行指令,也没有数据显示。错误图如下图所示。ysqlusedb_study;DatabapeChangedmysqlCALLd&adlock;问题原因:解决方案: