MySQL存储过程

MySQL学习笔记:while循环
  思考:while循环是否只能使用在存储过程或者存储函数之中,不能直接在查询语句中使用?

———— 循环一般在存储过程和存储函数中使用。

直接放几个例子:

例一:
  1.创建存储过程

复制代码
DELIMITER KaTeX parse error: Expected 'EOF', got '#' at position 51: … in_count INT) #̲ 创建存储过程 学习while…
DELIMITER ;
复制代码
  2.调用存储过程

CALL test_while_001(10); # 45 输出
  3.删除存储过程

DROP PROCEDURE test_while_001;

例二:
  1.创建函数

复制代码
DELIMITER KaTeX parse error: Expected 'EOF', got '#' at position 69: …ETURNS INT(10) #̲ 创建函数 学习while循环…
DELIMITER ;
复制代码
  注意:创建函数之前必须更改系统设置 否则无法创建函数

SET GLOBAL log_bin_trust_function_creators=TRUE;
  2.调用函数

SELECT my_test_function(10);
SELECT my_test_function(24);
SELECT my_test_function(222);
  3.删除函数

DROP FUNCTION my_test_function;

例三:
  1.如果存在,则删除

DROP PROCEDURE IF EXISTS u_head_and_low_pro;
  2.创建存储过程

复制代码
DELIMITER C R E A T E P R O C E D U R E u h e a d a n d l o w p r o ( ) B E G I N D E C L A R E n I N T D E F A U L T 10 ; S E T n = n − 1 ; W H I L E n > 0 D O S E L E C T n ; S E T n = n − 1 ; E N D W H I L E ; E N D CREATE PROCEDURE u_head_and_low_pro() BEGIN DECLARE n INT DEFAULT 10; SET n = n - 1; WHILE n > 0 DO SELECT n; SET n = n - 1; END WHILE; END CREATEPROCEDUREuheadandlowpro()BEGINDECLAREnINTDEFAULT10;SETn=n1;WHILEn>0DOSELECTn;SETn=n1;ENDWHILE;END
DELIMITER ;
复制代码
  3.调用存储过程

CALL u_head_and_low_pro();
  4.删除存储过程

DROP PROCEDURE u_head_and_low_pro;
  注:不依赖于任何数据库表,完整展示变量、while语句、存储过程的用法。

例四:
复制代码

创建存储过程

DELIMITER C R E A T E P R O C E D U R E t e s t w h i l e ( ) B E G I N D E C L A R E S U M I N T D E F A U L T 0 ; D E C L A R E t I N T D E F A U L T 5 ; W H I L E t > 0 D O S E T S U M = S U M + t ; S E T t = t − 1 ; E N D W H I L E ; S E L E C T S U M ; E N D CREATE PROCEDURE test_while() BEGIN DECLARE SUM INT DEFAULT 0; DECLARE t INT DEFAULT 5; WHILE t > 0 DO SET SUM = SUM + t; SET t = t - 1; END WHILE; SELECT SUM; END CREATEPROCEDUREtestwhile()BEGINDECLARESUMINTDEFAULT0;DECLAREtINTDEFAULT5;WHILEt>0DOSETSUM=SUM+t;SETt=t1;ENDWHILE;SELECTSUM;END
DELIMITER ;

调用存储过程

CALL test_while(); # 15

删除

DROP PROCEDURE test_while;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值