概述
学习目标:
掌握 mysql循环语句的使用
学习内容:
- while循环
- repeat循环
- loop
代码实例:
1.while 循环条件 do #执行循环的条件
循环体语句; #必须含有修改循环条件的语句
end while;
1:如果成绩表SC中存在不及格学生的成绩,将所有学生的成绩在原来的基础上提高5%,直到表中不再存在不及格学生为止。
-- 分析
select * from sc where degree<60;
update sc set degree=degree*1.05;
-- 1
if exists(select * from sc where degree<60) then
update sc set degree=degree*1.05;
end if;
-- 2
desc sc;
declare cj decimal(28,0);
select cj=(select min(degree) from sc);
if cj<60 then
update sc set degree=degree*1.05;
end if;
-- 编程
delimiter //
create procedure rw1()
begin
set @cj=(select min(degree) from sc);
while @cj<60 do
update sc set degree=degree*1.05;
set @cj=(select min(degree) from sc);
end while;
end //
delimiter ;
call rw1();
任务一: 用WHILE…END WHILE语句求1…100的所有奇数之和。
方法一:
delimiter //
create procedure rw2()
begin
set @s=0,@i=1;
while @i<=100 do
if @i%2<>0 then
set @s=@s+@i;
end if;
set @i=@i+1;
end while;
select @s as '1…100的所有奇数之和';
end //
delimiter ;
call rw2();
方法二:
delimiter //
create procedure rw3()
begin
set @s=0,@i=1;
while @i<=100 do
set @s=@s+@i;
set @i=@i+2;
end while;
select @s as '1…100的所有奇数之和';
end //
delimiter ;
call rw3();
2.repeat 循环
repeat
循环体语句;
until 条件 #退出循环的条件
end repeat;
例 1:如果成绩表SC中存在不及格学生的成绩,将所有学生的成绩在原来的基础上提高5%,直到表中不再存在不及格学生为止。
select * from sc;
delimiter //
create procedure rw4()
begin
select min(degree) into @cj from sc;
repeat
update sc set degree=degree*1.05;
select min(degree) into @cj from sc;
until @cj>=68
end repeat;
end //
delimiter ;
call rw4();
3.loop循环
标签名:loop
循环体语句;
if 条件 then #退出循环的条件
leave 标签名;
end if;
end loop;
1:如果成绩表SC中存在不及格学生的成绩,将所有学生的成绩在原来的基础上提高5%,直到表中不再存在不及格学生为止。
delimiter //
create procedure rw5()
begin
www:loop
update sc set degree=degree*1.05;
select min(degree) into @cj from sc;
if @cj>88 then
leave www;
end if;
end loop;
end //
delimiter ;
call rw5();
最后
以上就是勤恳绿茶为你收集整理的mysql(while,repeat,loop) 循环语句的使用学习目标:学习内容:代码实例:的全部内容,希望文章能够帮你解决mysql(while,repeat,loop) 循环语句的使用学习目标:学习内容:代码实例:所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复