目录:
选择结构 if函数 if结构 case结构 循环结构 while loop repeat
流程控制语句大致分为选择结构与循环结构;
选择结构
if函数
功能:三目运算
语法:
代码语言:javascript复制if(逻辑表达式,表达式1,表达式2);
当逻辑表达式成立时执行表达式1,否则执行表达式2。
if结构
功能:实现多路选择
注意:只能用在begin...end结构体中
语法:
代码语言:javascript复制if 逻辑表达式 then 语句1;
elseif 逻辑表达式2 then 语句2;
...
else 语句n;
end if;
case结构
等值选择语法:
代码语言:javascript复制case 字段|变量|表达式
when 值 then 值|语句
when 值 then 值|语句
...
else 值|语句
end;
不等值选择语法:
代码语言:javascript复制case
when 逻辑表达式 then 语句1
when 逻辑表达式 then 语句2
...
else 语句n
end;
循环结构
while
语法:
代码语言:javascript复制while 逻辑表达式 do
循环体
end while;
注意:在do...end while中写循环体;
代码实例:
创建存储过程,输入一个值,返回1到该值的和;
代码语言:javascript复制delimiter $
create procedure pro_sum(in input int,out total int)
begin
declare i int default 1;
while i<=input
do
set sum_:=sum_ 1;
set i:=i 1;
end while;
set total:=sum_;
end;$
set @result:=0;
call pro_sum(2,@result);
select @result;
loop
语法:
代码语言:javascript复制循环名称:loop;
if 逻辑表达式 then
leave 循环名称; #跳出当前指定的循环,类似于Java中的break;
end if;
end loop;
代码实例:
代码语言:javascript复制#创建存储过程
DELIMITER //
CREATE PROCEDURE pro_sum_loop(IN input INT,OUT total INT)
BEGIN
DECLARE i int DEFAULT 1;
DECLARE sum_ int DEFAULT 0;
a:LOOP
SET sum_:=sum_ i;
SET i:=i 1;
IF i>input THEN
LEAVE a;
END IF;
END LOOP;
SET total:=sum_;
END;//
#调用存储过程
SET @result:=0;
call pro_sum_loop(3,@result);
select @result;
repeat
语法:
代码语言:javascript复制repeat 循环体
until 逻辑表达式 #当满足逻辑表达式时,跳出循环
end repeat;
代码实例:
代码语言:javascript复制#创建存储过程
DELIMITER //
CREATE PROCEDURE pro_sum_repeat(IN input INT,OUT total INT)
BEGIN
DECLARE i INT DEFAULT 1;
DECLARE sum_ INT DEFAULT 0;
REPEAT SET sum_:=sum_ 1;
SET i:=i 1;
UNTIL i>input
END REPEAT;
SET total:=sum_;
END;//
#调用存储过程
SET @result:=0;
call pro_sum_loop(3,@result);
select @result;