首页 > 代码库 > 存储过程之三—语句
存储过程之三—语句
一、 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 ,结束本次循环。
求某个数以内的偶数和,代码如下:
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。