mysql的基本流程控制语句

来源:互联网 发布:网络招聘软件 编辑:程序博客网 时间:2024/04/28 15:34
--  开始我们的mysql控制语句
由于近期比较忙,所现在才开始跟新mysql心得,我们来谈谈mysql的流程语句一下代码在控制台或者
如果对mysql delimiter分界符不太懂得,先看这篇博客:mysql 分界符delimiter介绍
一、if语句
形式如下:
if condition then...[else condition then]...[else]...end if


Example:
drop procedure if exists test_if;delimiter // -- 分界符create procedure test_if(in x int)beginif x=1 thenselect 'OK';elseif x=0 thenselect 'No';else select 'good';end if;end//delimiter ;call test_if(0);

二、case语句
case语句为多分枝语句结构,改语句首先从when后的value中查找与case后的value相等的值,如果找到,则执行该分支语句,否则执行else语句,形式如下:
case valuewhen value then ...[when value then...][else...]end case

其中,value参数表示判断的变量;when...then中的value表示变量的取值。case语句还有另外一种语法表示结构:
case when value then...  -- 此处的value可以为一个条件condition[when value then...][else...]end case

example:
drop procedure if exists test_case;delimiter //create procedure test_case(in x int)begincase xwhen 1 then select 'OK';when 0 then select 'No';else select 'good';end case;end//delimiter ;call test_case(9);
三、while循环
改语句形式如下
while condition do...end while

exmaple:
drop procedure if exists test_while;delimiter //create procedure test_while(out sum int)begindeclare i int default 1;declare s int default 0;while i<=10 doset s = s+i;set i = i+1;end while;set sum = s;end;//delimiter ;call test_while(@s);select @s;

四、loop循环
该循环没有内置循环条件,但可以通过leave 语句退出循环。表示形式如下:
loop...end loop
example:
drop procedure if exists test_loop;delimiter //create procedure test_loop(out sum int)begindeclare i int default 1;declare s int default 0;loop_label:loopset s = s+i;set i = i+1;if i>10 then leave loop_label;end if;end loop;set sum = s;end;//delimiter ;call test_loop(@s);select @s;

五、repeat循环语句
该语句执行一次循环体,之后判断condition条件是否为真,为真则退出循环,否则继续执行循环体。repeat语句的表示形式如下。
repeat...until conditionend repeat
eample:
drop procedure if exists test_repeat;delimiter //create procedure test_repeat(out sum int)begindeclare i int default 1;declare s int default 0;repeatset s = s+i;set i = i+1;until i>10 -- 此处不能有分号end repeat;set sum = s;end;//delimiter ;call test_repeat(@s);select @s;

0 0
原创粉丝点击