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来控制循环

原文地址:https://www.cnblogs.com/fbbg/p/13542230.html