循环语句:
while
while 布尔表达式(循环的条件) do
循环体(语句用分号标记结束)
end while
repeat
repeat
循环体(语句用分号标记结束)
until 布尔表达式(停止循环的条件)
end repeat
loop
循环标签 : loop
循环执行语句;
end loop 循环标签
LEAVE语句用来退出任何被标注的流程控制语句,语法如下:
LEAVE label;
ITERATE语句将执行顺序转到语句段开头处,ITERATE只可以出现在 LOOP、REPEAT和WHILE语句内。语法如下:
ITERATE label;
以上两个语句只能在循环中使用
下面分别演示使用三种循环对1到100求和
while
mysql>delimter //
mysql> create function sum100()
-> returns int
-> begin
-> declare sum int default 0;
-> declare i int default 0;
-> while i <= 100 do
-> set sum = sum + i;
-> set i = i + 1;
-> end while;
-> return sum;
-> end
-> //
repeat
mysql> create function sum100()
-> returns int
-> begin
-> declare sum int default 0;
-> declare i int default 0;
-> repeat
-> set sum = sum + i;
-> set i = i + 1;
-> until i > 100
-> end repeat;
-> return sum;
-> end
-> //
loop
mysql> create function sum100()
-> returns int
-> begin
-> declare sum int default 0;
-> declare i int default 0;
-> lpl : loop
-> set sum = sum + i;
-> set i = i + 1;
-> if i > 100
-> then leave lpl;
-> end if;
-> end loop lpl;
-> return sum;
-> end
-> //
判断语句:
if 布尔表达式
then 语句
elseif 布尔表达式
then 语句
else
语句
end if
条件跳转语句:
case 判断的变量
when 一个值 then 执行语句;
when 一个值 then 执行语句;
when 一个值 then 执行语句;
else 执行语句;
end case
case 语句的示例:(注意与select中的case语句不一样)
mysql> create function trans(a int)
-> returns char
-> begin
-> case a
-> when 1 then return 'A';
-> when 2 then return 'B';
-> when 3 then return 'C';
-> else return '+';
-> end case;
-> end
->//
赋值语句
对于赋值语句同样可使用
select a into b;
等同与
set b = a;