流程控制结构
分类:顺序结构、分支结构、循环结构
分支结构
- 程序从两条或多条路径中选择一条去执行
if函数
-
功能:实现简单的双分支:
-
语法:
if(表达式1,表达式2,表达式3)
执行顺序:如果表达式1成立,则if函数返回表达式2的值,否则返回表达式3的值
-
可以应用在任何地方
case结构
-
情况1:类似于java中的switch语句,一般用于实现等值判断
-
语法:
case 变量|表达式|字段
when 要判断的值 then 返回的值1
when 要判断的值 then 返回的值2
…
else 要返回的值n
end
-
-
情况2:类似于java中的多重if语句,一般用于实现区间判断
-
语法:
case
when 要判断的条件1 then 返回的值1
when 要判断的条件2 then 返回的值2
…
else 要返回的值n
end
-
create FUNCTION num(id int) RETURNS varchar(10) BEGIN DECLARE c varchar(10) DEFAULT '1'; case when id >0 and id<60 then set c='C'; when id >=60 and id<=80 then set c='B'; else set c='A'; end case; return c; END; create FUNCTION num(id int) RETURNS varchar(10) BEGIN DECLARE c varchar(10) DEFAULT '1'; case id when 1 then set c='C'; when 2 and id<=80 then set c='B'; else set c='A'; end case; return c; END; select num1(2)
-
if结构
-
语法:
if 条件1 then 语句1
elseif 条件2 then 语句2
…
else 语句n
end if;
-
只能应用在begin end中
-
create function test_if(score int ) returns varchar(3) begin if score > 90 then return 'A'; elseif score >80 then return 'B'; else return 'D'; end if; end select test_if(80)
循环结构
-
分类:while、loop、repeat
-
循环控制:iterate类似于continue
leave 类似于 break
-
语法:
- while:
【名称:】while 循环条件 do
循环体
end while 【名称】;
-
loop:
【名称:】 loop
循环体
end loop 【名称】
-
repeat
【名称:】repeat
循环体
until 结束循环的条件
end repeat 【名称】;
-
create PROCEDURE test( in id int) begin DECLARE num int DEFAULT 0; DECLARE str varchar(26) DEFAULt'abcdefghijklmnopqrstuvwxyz'; DECLARE starti int DEFAULT 1; DECLARE len int DEFAULT 1; while num<id do set starti = floor(rand()*26+1); set len =floor(rand()*(21-starti)+1); insert into string (contnet) values (SUBSTR(str ,starti,len)); set num=num+1; end while; end call test(6)
实现生成一段随机的字符串,插入表中。