mysql流程控制语句
数据:
if 函数:
格式:if(表达式,值1,值2);当表达式为true的时候,返回值1,否则返回值2
实例:
case结构:
两种用法:
第一种:类似于switch
格式:
case 表达式
when 值1 then 结果1或者语句1(如果是语句要加分号)
when 值2 then 结果2或者语句2
......
else 结果或者语句
end [case] //在select中使用时不同加case,在begin...end中必须要加case
实例:
1、在select中使用
2、在存储过程中使用
3、在函数中使用
第2种用法:类似java中的多重if语句
语法:
case
when 条件1 then 结果1或者语句1(语句需要加分号)
when 条件2 then 结果2或者语句2
......
else 条件或者语句
end [case];
这种写法和第一种类似,没太大改变
if 结构:只能使用在begin end之间
if 结构类似于java中的if ...else if.....else
语法:
if 条件语句1 then 语句1;
else if 条件语句2 then 语句2;
......
else 语句N;
end if;
实例:
1、在存储过程中。写一个存储过程,实现用户的更新和新增,如果id存在就更新,不存在就新增
循环:
mysql中的循环有三种写法:
while:类似于java的while循环
repeat:类似于java的do...while循环
loop:类似于java中的while(true)死循环
循环控制:
对循环内部的流程进行控制,如:
结束本次循环:类似于java中的continue
iterate 循环标签;
退出循环:类似于java中的break
leave 循环标签;
while循环:
[标签:] while 循环条件 do
循环体
end while [标签];
注:标签:是给while取个名字,标签和iterate、leave组合起来在循环内部控制循环。如跳出循环、结束本次循环
实例1:创建一个存储过程,根据传入的值向表中添加指定数量的数据
实例2:添加leave控制语句,传入一个参数,然后插入10条后循环结束
实例3:添加iterate控制语句,根据传入的参数向test1表中传入数据,只插入偶数数据
repeat循环:
语法:
[标签:]repeat
循环体;
until 结束循环条件 end repeat [标签];
repeat相当于java中的do......while,先执行一次,再进行判断
loop循环:
语法:
[标签:] loop
循环体;
end loop [标签];
loop相当于一个死循环,需要使用leave和iterate来控制循环