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