--
1、
IF语句
-- 创建存储过程,判断两个输入参数哪一个大
-- 输入的第一个参数对应p1,第二个对应p2,@ax用来接收输出变量p3; 如果p1>p2,输出
1;如果p1=p2,输出
2;其他情况,输出
3。
-- -- 定义存储过程
DELIMITER $$
CREATE PROCEDURE difference(IN p1 INTEGER,IN p2 INTEGER,OUT p3 INTEGER)
BEGIN
IF p1 > p2 THEN SET p3 = 1;
ELSEIF p1= p2
THEN SET p3 =
2;
ELSE SET p3 =
3;
END IF;
END $$
DELIMITER ;
-- --调用存储过程
call difference(
12,
56,@ax);
SELECT @ax;
+------+
| @ax |
+------+
|
3 |
+------+
--
2、
CASE语句
-- -- 定义存储过程
#如果该存储过程存在则删除
drop
procedure if exists difference2;
DELIMITER $$
CREATE PROCEDURE difference2(IN p1 INTEGER,IN p2 INTEGER,OUT p3 INTEGER)
BEGIN
case
when p1 > p2 THEN SET p3 = 1;
when p1= p2
THEN SET p3 =
2;
ELSE SET p3 =
5;
END CASE;
END $$
DELIMITER ;
-- --调用存储过程
call difference2(
123,
561,@ax);
SELECT @ax;
+------+
| @ax |
+------+
|
5 |
+------+
--
3.
WHILE循环
DELIMITER $$
CREATE PROCEDURE do_while(x int)
BEGIN
DECLARE v INT DEFAULT 5;
set v=x;
WHILE v>
0 DO
select v;
SET v=v-
1;
END WHILE;
END$$
DELIMITER ;
call do_while(
8);