循环-while
while循环是有条件的循环控制语句。满足条件后再执行循环体中的SQL语句。具体语法为:
案例:计算从1累加到n的值,n为传入的参数值。
循环-repeat
repeat是有条件的循环控制语句,会先执行一次!当满足条件的时候退出循环。具体语法为:
注意:until后面没有分号!
案例:计算从1累加到n的值,n为传入的参数值。
循环-loop
LOOP实现简单的循环,如果不在SQL逻辑中增加退出的条件,可以用其来实现简单的死循环。LOOP可以配合以下两个语句使用
LEAVE:配合循环使用,退出循环
ITERATE:必须用在循环中,作用是跳过当前循环剩下的语句,直接进入下一次循环。
案例:计算从1累加到n的值,n为传入的参数值。
案例:计算从1到n之间偶数累加的值,n为传入的参数值。
游标-Cursor
游标(CURSOR)是用来存储查询结果集的数据类型,在存储过程和函数中可以使用游标对结果集进行循环的处理。游标的使用包括游标的声明、OPEN、FETCH、CLOSE,其语法分别如下。
案例:
此次案例中使用了一个while的死循环来获取游标中的记录和插入数据,后面将会使用条件处理程序改进,下面的报错是无数据——获取、选择或处理的行为
条件处理程序(Handler)
条件处理程序可以用来定义在流程控制结构执行过程中遇到问题时相应的处理步骤,具体语法为:
对上述案例进行优化:
两种写法,一种是用状态码,可以从报错中得出,另一种是使用not found(以02开头)
存储函数
存储函数是有返回值的存储过程,存储函数的参数只能是IN类型的。具体语法如下:
案例:计算从1累加到n的值,n为传入的参数值。
这里的参数只能是in,而且必须要有返回值和characteristic。