1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 存储过程内基础语法---补充while循环

存储过程内基础语法---补充while循环

时间:2024-02-04 04:55:48

相关推荐

存储过程内基础语法---补充while循环

1.基础语法

while循环初始化语句;WHILE 条件判断语句 DO循环体语句;条件控制语句;END WHILE;

2.举例

计算1~100之间的偶数和

【注:num只能num=num+1 不能num++,num+=1; 】

<1>存储过程内部查询

DELIMITER $CREATE PROCEDURE pro_test6()BEGIN-- 定义求和变量DECLARE result INT DEFAULT 0;-- 定义初始化变量DECLARE num INT DEFAULT 1;-- while循环WHILE num<=100 DOIF num%2 =0 THENSET result =result +num;END IF;SET num =num +1;END WHILE;-- 查询求和结果SELECT result;END $DELIMITER ;-- 调用pro_test6存储过程CALL pro_test6();

<2>存储过程外部查询,并将结果返回【定义输入输出参数】

方法一:定义初始变量,将值赋给输出参数

DELIMITER $CREATE PROCEDURE pro_test7(IN n INT ,OUT SUM INT ) -- (形参,返回值)BEGIN-- 定义求和变量DECLARE result INT DEFAULT 0;-- 定义初始化变量DECLARE num INT DEFAULT 1;-- while循环WHILE num<=n DOIF num%2 =0 THENSET result =result +num;END IF;SET num =num +1;END WHILE;-- 查询求和结果SET SUM =result;END $DELIMITER ;-- 调用pro_test7存储过程CALL pro_test7(10,@sum) ;SELECT @sum ;

方法二:IFNULL(SUM,0)函数给输出函数初始化赋值

DELIMITER $CREATE PROCEDURE pro_test8(IN n INT ,OUT SUM INT ) -- (形参,返回值)BEGIN-- 定义求和变量DECLARE num INT DEFAULT 1;-- while循环WHILE num<=n DOIF num%2 =0 THEN-- SET SUM =SUM +num;SET SUM =IFNULL(SUM,0) +num; -- 方法1END IF;SET num =num +1;END WHILE;END $DELIMITER ;-- 调用pro_test8存储过程CALL pro_test8(10,@sum) ;SELECT @sum ;

方法三:IF SUM IS NULL THEN

SET SUM =0;

END IF;

在while循环对输出参数加非空判断

DELIMITER $CREATE PROCEDURE pro_test9(IN n INT ,OUT SUM INT ) -- (形参,返回值)BEGIN-- 定义求和变量DECLARE num INT DEFAULT 1;IF SUM IS NULL THENSET SUM =0;END IF; -- 方法2-- while循环WHILE num<=n DOIF num%2 =0 THENSET SUM =SUM +num;END IF;SET num =num +1;END WHILE;END $DELIMITER ;-- 调用pro_test9存储过程CALL pro_test9(10,@sum) ;SELECT @sum ;

方法四:SET @sum=0 ;在调用方法时,给输出参数设置初始参数

DELIMITER $CREATE PROCEDURE pro_test10(IN n INT ,INOUT SUM INT ) -- (形参,返回值)-- 方法3BEGIN-- 定义求和变量DECLARE num INT DEFAULT 1;-- while循环WHILE num<=n DOIF num%2 =0 THENSET SUM =SUM +num;END IF;SET num =num +1;END WHILE;END $DELIMITER ;-- 调用pro_test7存储过程SET @sum=0 ;CALL pro_test7(10,@sum) ;SELECT @sum ;

3.方法查询结果

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。