MySQL之流程控制
流程控制
一、if条件语句
第一种 if:
"""
if 条件 then
语句;
end if;
"""
第二种 if elseif
"""
if 条件 then
语句1;
elseif 条件 then
语句2;
else 语句3;
end if;
"""
案例:编写过程 实现 输入一个整数type 范围 1 - 2 输出 type=1 or type=2 or type=other;
delimiter //
create procedure showType(in type int,out result char(20))
begin
if type = 1 then
set result = "type = 1";
elseif type = 2 then
set result = "type = 2";
else
set result = "type = other";
end if;
end //
delimiter ;
set @res=null;
call showType(100, @res);
select @res;
二、CASE 语句
大体意思与Swtich一样的 你给我一个值 我对它进行选择 然后执行匹配上的语句
语法:
create procedure caseTest(in type int)
begin
CASE type
when 1 then select "type = 1";
when 2 then select "type = 2";
else select "type = other";
end case;
end
- 定义变量
declare 变量名 类型 default 值;
例如: declare i int default 0;
- WHILE循环
循环输出10次hello mysql
create procedure showHello()
begin
declare i int default 0;
while i < 10 do
select "hello mysql";
set i = i + 1;
end while;
end
- LOOP循环的
没有条件 需要自己定义结束语句
语法:
输出十次hello mysql;
create procedure showloop()
begin
declare i int default 0;
aloop: LOOP
select "hello loop";
set i = i + 1;
if i > 9 then leave aloop;
end if;
end LOOP aloop;
end
- REPEAT循环
#类似do while
#输出10次hello repeat
create procedure showRepeat()
begin
declare i int default 0;
repeat
select "hello repeat";
set i = i + 1;
until i > 9
end repeat;
end
#输出0-100之间的奇数
create procedure showjishu()
begin
declare i int default 0;
aloop: loop
set i = i + 1;
if i >= 101 then leave aloop; end if;
if i % 2 = 0 then iterate aloop; end if;
select i;
end loop aloop;
end
走在从入门到放弃,最终删库跑路的路上