存储过程之三—语句

简介: 一、 IF ELSE   if else 类似选择结构的语句,类似于编程语言中的if else。语法如下: IF 表达式 THEN 执行语句 [ELSEIF 表达式 THEN 执行语句] [ELSE 执行语句] END IF;   根据分数打印等级,代码如下: DROP ...

一、 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 ,结束本次循环。

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

目录
相关文章
|
4月前
|
SQL 资源调度 数据库
深入探究SQL查询语句执行过程
深入探究SQL查询语句执行过程
62 2
|
存储 SQL 关系型数据库
MySQL基础-存储过程与函数
MySQL基础-存储过程与函数
|
存储 SQL 关系型数据库
MySQL基础篇——存储过程和函数
MySQL基础篇——存储过程和函数
130 0
|
SQL 监控 数据库
详谈sql语句优化
SQL语句优化是提高数据库性能的重要手段之一。下面将详细介绍SQL语句优化的几个方面。
141 0
|
SQL 存储 缓存
一文读懂MySQL查询语句的执行过程
一文读懂MySQL查询语句的执行过程
326 0
|
存储 SQL 缓存
怎样才能写出高质量的SQL语句?
网上关于sql优化的答案数不胜数,可是篇幅太长,看一下滚动条就没有要看下去的欲望,这里自己总结精简了一下,全文1200字,阅读需要5分钟,还有很多不足之处望大佬多多指点~ 字段设计 价格使用定点数decimal 小单位大数额避免出现小数 单表字段不宜过多(最多30) 尽可能使用 not null 关联表的设计 一对多(使用外键) 多对多(单独新建一张表将多对多拆分成两个一对多) 一对一(如商品的基本信息(item)和商品的详细信息(item_intro),通常使用相同的主键或者增加一个外键字段(item_id)) 范式
156 0

热门文章

最新文章