MySQL(流程控制语句)

2022-05-12 21:13:52 浏览数 (2)

目录:

选择结构 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;

0 人点赞