>  기사  >  데이터 베이스  >  MySQL 프로세스 제어 while, 반복, 루프 루프

MySQL 프로세스 제어 while, 반복, 루프 루프

WBOY
WBOY앞으로
2022-07-27 17:38:121920검색

이 기사에서는 mysql에 대한 관련 지식을 제공합니다. 주로 MySQL 저장 프로시저의 while, 반복 및 루프 루프에 대한 프로세스 제어를 소개합니다. 루프의 코드는 특정 횟수 또는 특정 조건이 충족될 때까지 실행됩니다. . 이제 이 사이클이 모두에게 도움이 되기를 바랍니다.

MySQL 프로세스 제어 while, 반복, 루프 루프

추천 학습: mysql 비디오 튜토리얼

머리말

  • 루프는 프로그램에 한 번만 나타나지만 여러 번 연속적으로 실행될 수 있는 코드 조각입니다.
  • 루프의 코드는 특정 횟수만큼 실행되거나 특정 조건이 충족되면 루프가 종료됩니다.

루프 분류:

  • while
  • repeat
  • loop

루프 제어:

leavebreak와 유사합니다. 현재 루프 종료

iteratecontinue와 유사합니다. 계속하고 이 루프를 종료하고 다음

while 루프

【标签:】while 循环条件 do
循环体;
end while【 标签】;
-- 创建测试表
create table user (
uid int primary_key,
username varchar ( 50 ),
password varchar ( 50 )
);
-- -------存储过程-while
delimiter $$
create procedure proc16_while1(in insertcount int)
begin
declare i int default 1;
label:while i<=insertcount do
insert into user(uid,username,`password`) values(i,concat(&#39;user-&#39;,i),&#39;123456&#39;);
set i=i+1;
end while label;
end $$
delimiter ;
call proc16_while(10);

로 계속합니다. 저장 프로시저 구문은 고정되어 있습니다. delimiter $$ create peocedure 루프 name (parameter) start code end $$ delimiter;

루프 본문을 작성할 때 루프를 정의하기 위한 첫 번째 변수가 있어야 한다는 점에 유의하세요. 선언 i int 기본 기본값

그런 다음 dlabel:while 판단 조건 do loop Body end while label; end && must have

-- -------存储过程-while + leave
truncate table user;
delimiter $$
create procedure proc16_while2(in insertcount int)
begin
declare i int default 1;
label:while i<=insertcount do
insert into user(uid,username,`password`) values(i,concat(&#39;user-&#39;,i),&#39;123456&#39;);
if i=5 then leave label;
end if;
set i=i+1;
end while label;
end $$
delimiter ;
call proc16_while2(10);

루프를 내부적으로 중단해야 하는 경우 if 판단을 사용하고, end if 끝에 있어야 합니다.

여기에서 벗어나려면 loop, break

-- -------存储过程-while+iterate
truncate table user;
delimiter $$
create procedure proc16_while3(in insertcount int)
begin
declare i int default 1;
label:while i<=insertcount do
set i=i+1;
if i=5 then iterate label;
end if;
insert into user(uid,username,`password`) values(i,concat(&#39;user-&#39;,i),&#39;123456&#39;);
end while label;
end $$
delimiter ;
call proc16_while3(10);

here에 상대적인 continue와 비교하면 iterate는

repeat loop

[标签:]repeat
循环体;
until 条件表达式
end repeat [标签];
-- -------存储过程-循环控制-repeat
use mysql7_procedure;
truncate table user;
delimiter $$
create procedure proc18_repeat(in insertCount int)
begin
declare i int default 1;
label:repeat
insert into user(uid, username, password) values(i,concat(&#39;user-&#39;,i),&#39;123456&#39;);
set i = i + 1;
until i > insertCount
end repeat label;
select &#39;循环结束&#39;;
end $$
delimiter ;
call proc18_repeat(100);

를 만났을 때 다음 코드를 실행하지 않습니다. 이는 무슨 일이 있어도 한 번 실행될 루프와 비교되어 판단됩니다. 내부적으로 만족하면 바로 튀어나옵니다

loop

[标签:] loop
循环体;
if 条件表达式 then
leave [标签];
end if;
end loop;
-- -------存储过程-循环控制-loop
truncate table user;

delimiter $$
create procedure proc19_loop(in insertCount int)
begin
declare i int default 1;
label:loop
insert into user(uid, username, password) values(i,concat(&#39;user-&#39;,i),&#39;123456&#39;);
set i = i + 1;
if i > 5
then
leave label;
end if;
end loop label;
select &#39;循环结束&#39;;
end $$
delimiter ;
call proc19_loop(10);

이것과 반복의 차이점은 실행 후에는 Leave를 사용하여 루프를 빠져나오면 효과를 얻을 수 있다는 것입니다. 필요하지만 비즈니스 애플리케이션 시나리오에서는 여전히 상대적으로 일반적입니다.

추천 학습: mysql 비디오 튜토리얼

위 내용은 MySQL 프로세스 제어 while, 반복, 루프 루프의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 jb51.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제