存储过程之三—语句

来源:互联网 发布:union软件下载 编辑:程序博客网 时间:2024/06/15 13:06

一、 IF ELSE

  if else 类似选择结构的语句,类似于编程语言中的if else。语法如下:

IF 表达式 THEN 执行语句
[ELSEIF 表达式 THEN 执行语句] 
[ELSE 执行语句] 
END IF;

  根据分数打印等级,代码如下:

复制代码
DROP PROCEDURE IF EXISTS proc_test_statement;CREATE PROCEDURE proc_test_statement(    IN num INT(11),    OUT result VARCHAR(255) )BEGIN     IF(num >= 80) THEN        SET result='优秀';    ELSEIF (num >= 70) THEN        SET result='良好';    ELSEIF (num >= 60 ) THEN        SET result='及格';    ELSE        SET result='不及格';    END IF;END;CALL proc_test_statement(90,@n);SELECT @n;
复制代码

   执行结果如下:

二、 CASE

  case 类似于编程语言中的switch...case。语法如下:

CASE 表达式 
WHEN 表达式 THEN 执行语句  
WHEN 表达式 THEN 执行语句  
ELSE 执行语句  
END CASE;

   打印字母对应的等级,代码如下:

复制代码
DROP PROCEDURE IF EXISTS proc_test_case;CREATE PROCEDURE proc_test_case(    IN scode VARCHAR(255),     OUT result VARCHAR(255) )BEGIN     CASE  scode         WHEN 'A' THEN             SET result='优秀';         WHEN 'B' THEN             SET result='良好';         WHEN 'C' THEN             SET result='及格';         ELSE             SET result='不及格';     END CASE;END;CALL proc_test_case('D',  @result);SELECT @result;
复制代码

  执行结果如下:

三、 WHILE

  while语句类似于编程语言中的while语句。语法如下:

  WHILE 表达式 DO

    执行语句

  END WHILE

  从1加到某个数,代码如下:

复制代码
DROP PROCEDURE IF EXISTS proc_test_while;CREATE PROCEDURE proc_test_while(    IN time int(11),     OUT result int(11) )BEGIN     DECLARE n INT DEFAULT 1;    SET result = 0;    WHILE (n <= time) DO        SET result = result + n;        SET n = n + 1;     END WHILE;END;CALL proc_test_while(100, @result);SELECT @result;
复制代码

  执行结果如下:

 四、REPEAT

  pepeat 语句类似于程序语言中的do...while语句,语法如下:

REPEAT 
执行语句; 
UNTIL 表达式
END REPEAT

   从1加到某个数,代码如下:

复制代码
DROP PROCEDURE IF EXISTS proc_test_pepeat;CREATE PROCEDURE proc_test_pepeat(    IN time int(11),     OUT result int(11) )BEGIN     DECLARE n INT DEFAULT 1;    SET result = 0;    REPEAT             SET result = result + n;            SET n = n + 1;        UNTIL (n > time)     END REPEAT;END;CALL proc_test_pepeat(100, @result);SELECT @result;
复制代码

  结果如下:

五、LOOP 及 LEAVE、ITERATE

    loop的使用 要结合leave 和 iterate。loop 标志位无条件循环,leave 类似于break 语句,跳出循环,跳出 begin end,iterate 类似于continue ,结束本次循环。

  求某个数以内的偶数和,代码如下:

原创粉丝点击