MySQL 中的三中循环 while loop repeat 的基本用法

 1 -- MySQL中的三中循环 while 、 loop 、repeat  求  1-n 的和
 2 
 3 
 4 
 5 -- 第一种 while 循环 
 6 -- 求 1-n 的和
 7 /*  while循环语法:
 8 while 条件 DO
 9             循环体;
10 end while;
11 */
12 -- 实例:
13 create procedure sum1(a int) 
14 begin
15     declare sum int default 0;  -- default 是指定该变量的默认值
16     declare i int default 1;
17 while i<=a DO -- 循环开始
18     set sum=sum+i;
19     set i=i+1;
20 end while; -- 循环结束
21 select sum;  -- 输出结果
22 end
23 -- 执行存储过程
24 call sum1(100);
25 -- 删除存储过程
26 drop procedure if exists sum1
27 
28 -- 第二种 loop 循环
29 /*loop 循环语法:
30 loop_name:loop
31         if 条件 THEN -- 满足条件时离开循环
32                 leave loop_name;  -- 和 break 差不多都是结束训话
33         end if;
34 end loop;
35 */
36 
37 -- 实例:
38 create procedure sum2(a int)
39 begin
40         declare sum int default 0;
41         declare i int default 1;
42         loop_name:loop -- 循环开始
43             if i>a then 
44                 leave loop_name;  -- 判断条件成立则结束循环  好比java中的 boeak
45             end if;
46             set sum=sum+i;
47             set i=i+1;
48         end loop;  -- 循环结束
49         select sum; -- 输出结果
50 end
51 -- 执行存储过程
52 call sum2(100);
53 -- 删除存储过程
54 drop procedure if exists  sum2
55 
56 
57 -- 第三种 repeat 循环
58 /*repeat 循环语法
59 repeat
60     循环体
61 until 条件 end repeat;
62 */
63 
64 
65 -- 实例;
66 create procedure sum3(a int)
67 begin
68         declare sum int default 0;
69         declare i int default 1;
70         repeat -- 循环开始
71             set sum=sum+i;
72             set i=i+1;
73         until i>a end repeat; -- 循环结束
74         select sum; -- 输出结果
75 end
76 
77 -- 执行存储过程
78 call sum3(100);
79 -- 删除存储过程
80 drop procedure if exists sum3

 

posted @ 2017-05-08 17:46  吕恒  阅读(26517)  评论(0编辑  收藏  举报