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