mysql存储过程游标循环使用介绍

mysql存储过程游标循环使用介绍

ID:10246108

大小:39.50 KB

页数:9页

时间:2018-06-13

mysql存储过程游标循环使用介绍_第1页
mysql存储过程游标循环使用介绍_第2页
mysql存储过程游标循环使用介绍_第3页
mysql存储过程游标循环使用介绍_第4页
mysql存储过程游标循环使用介绍_第5页
资源描述:

《mysql存储过程游标循环使用介绍》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、mysql存储过程游标循环使用介绍今天分享下自己对于Mysql存储过程的认识与了解,这里主要说说大家常用的游标加循环的嵌套使用Mysql的存储过程是从版本5才开始支持的,所以目前一般使用的都可以用到存储过程。今天分享下自己对于Mysql存储过程的认识与了解。一些简单的调用以及语法规则这里就不在赘述,网上有许多例子。这里主要说说大家常用的游标加循环的嵌套使用。首先先介绍循环的分类:(1)WHILE...ENDWHILE(2)LOOP...ENDLOOP(3)REPEAT...ENDREPEAT(4)GOTO这里有三种标准的循环方式:WHILE循环,LOO

2、P循环以及REPEAT循环。还有一种非标准的循环方式:GOTO(不做介绍)。(1)WHILE...ENDWHILE复制代码代码如下:CREATEPROCEDUREp14()BEGINDECLAREvINT;SETv=0;WHILEv<5DOINSERTINTOtVALUES(v);SETv=v+1;ENDWHILE;END;这是WHILE循环的方式。它跟IF语句相似,使用"SETv=0;"语句使为了防止一个常见的错误,如果没有初始化,默认变量值为NULL,而NULL和任何值操作结果都为NULL。(2)REPEAT...ENDREPEAT复制代码代码如下

3、:CREATEPROCEDUREp15()BEGINDECLAREvINT;SETv=0;REPEATINSERTINTOtVALUES(v);SETv=v+1;UNTILv>=5ENDREPEAT;END;这是REPEAT循环的例子,功能和前面WHILE循环一样。区别在于它在执行后检查结果,而WHILE则是执行前检查。类似于dowhile语句。注意到UNTIL语句后面没有分号,在这里可以不写分号,当然你加上额外的分号更好。(3)LOOP...ENDLOOP复制代码代码如下:CREATEPROCEDUREp16()BEGINDECLAREvINT;SE

4、Tv=0;loop_label:LOOPINSERTINTOtVALUES(v);SETv=v+1;IFv>=5THENLEAVEloop_label;ENDIF;ENDLOOP;END;以上是LOOP循环的例子。LOOP循环不需要初始条件,这点和WHILE循环相似,同时它又和REPEAT循环一样也不需要结束条件。ITERATE迭代如果目标是ITERATE(迭代)语句的话,就必须用到LEAVE语句复制代码代码如下:CREATEPROCEDUREp20()BEGINDECLAREvINT;SETv=0;loop_label:LOOPIFv=3THENSE

5、Tv=v+1;ITERATEloop_label;ENDIF;INSERTINTOtVALUES(v);SETv=v+1;IFv>=5THENLEAVEloop_label;ENDIF;ENDLOOP;END;ITERATE(迭代)语句和LEAVE语句一样也是在循环内部的循环引用,它有点像C语言中的“Continue”,同样它可以出现在复合语句中,引用复合语句标号,ITERATE(迭代)意思是重新开始复合语句。以上是对于循环的几种情况的介绍。接着就是介绍一个带游标的例子来详细解释。复制代码代码如下:begindeclarep_feeCodevarcha

6、r(20);declarep_feeNamevarchar(20);declarep_billMoneyfloat(12);declarep_schemeMoneyfloat(12);declareallMoneyfloat(10);declareallUsedMoneyfloat(10);declarep_yearvarchar(50);declarep_totalCompeleteRatefloat(12);declaredoneint(10);declareflagint(2);declarefeeCodeCursorcursorforselec

7、tfeeCodefromfee;//申明一个游标变量declarecontinuehandlerfornotfoundsetdone=1;//申明循环结束的标志位setdone=0;selectdate_format(now(),'%Y')intop_year;openfeeCodeCursor;//打开游标loop_label:LOOPfetchfeeCodeCursorintop_feeCode;//将游标插入申明的变量ifdone=1thenleaveloop_label;elsesetflag=0;endif;setp_schemeMoney=

8、0;setp_billMoney=0;selectfeeNameintop_feeNamefr

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

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

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