MySQL(流程控制语句)
目录:
选择结构
if函数
if结构
case结构
循环结构
while
loop
repeat
if函数
功能:三目运算
语法:
if(逻辑表达式,表达式1,表达式2);
当逻辑表达式成立时执行表达式1,否则执行表达式2。
if结构
功能:实现多路选择
注意:只能用在begin...end结构体中
语法:
if 逻辑表达式 then 语句1;
elseif 逻辑表达式2 then 语句2;
...
else 语句n;
end if;
case结构
等值选择语法:
case 字段|变量|表达式
when 值 then 值|语句
when 值 then 值|语句
...
else 值|语句
end;
不等值选择语法:
case
when 逻辑表达式 then 语句1
when 逻辑表达式 then 语句2
...
else 语句n
end;
while
语法:
while 逻辑表达式 do
循环体
end while;
注意:在do...end while中写循环体;
代码实例:
创建存储过程,输入一个值,返回1到该值的和;
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
语法:
循环名称:loop;
if 逻辑表达式 then
leave 循环名称; #跳出当前指定的循环,类似于Java中的break;
end if;
end loop;
代码实例:
#创建存储过程
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
语法:
repeat 循环体
until 逻辑表达式 #当满足逻辑表达式时,跳出循环
end repeat;
代码实例:
#创建存储过程
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;