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;
不等值选择语法:
casewhen 逻辑表达式 then 语句1when 逻辑表达式 then 语句2...else 语句nend;
while
语法:
while 逻辑表达式 do循环体end while;
注意:在do...end while中写循环体;
代码实例:
创建存储过程,输入一个值,返回1到该值的和;
delimiter $create procedure pro_sum(in input int,out total int)begindeclare i int default 1;while i<=inputdoset 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 逻辑表达式 thenleave 循环名称; #跳出当前指定的循环,类似于Java中的break;end if;end loop;
代码实例:
#创建存储过程DELIMITER //CREATE PROCEDURE pro_sum_loop(IN input INT,OUT total INT)BEGINDECLARE i int DEFAULT 1;DECLARE sum_ int DEFAULT 0;a:LOOPSET sum_:=sum_+i;SET i:=i+1;IF i>input THENLEAVE 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)BEGINDECLARE i INT DEFAULT 1;DECLARE sum_ INT DEFAULT 0;REPEAT SET sum_:=sum_+1;SET i:=i+1;UNTIL i>inputEND REPEAT;SET total:=sum_;END;//#调用存储过程SET @result:=0;call pro_sum_loop(3,@result);select @result;
