mysql의 흐름 제어 문에는 IF 문, CASE 문, LOOP 문, WHILE 문, REPEAT 문, LEAVE 문 및 ITERATE 문이 포함되며 모두 프로그램의 흐름을 제어할 수 있습니다.
흐름 제어 문은 저장 프로시저 및 사용자 지정 함수에서 프로그램 흐름을 제어하는 데 사용할 수 있습니다. MySQL의 흐름 제어문에는 프로세스 제어를 수행할 수 있는 IF문, CASE문, LOOP문, WHILE문, REPEAT문, LEAVE문 및 ITERATE문이 포함됩니다. (추천 튜토리얼: mysql 비디오 튜토리얼)
1. IF 문
IF 문은 조건부 판단을 내리고 조건에 따라 다른 작업을 수행하는 데 사용됩니다. 이 명령문이 실행되면 먼저 IF 뒤의 조건이 참인지 판단한 다음, 거짓이면 위의 조건 중 어느 것도 만족하지 않을 때까지 IF 문을 계속 판단합니다. ELSE 문이 실행된 후의 내용입니다. IF문의 표현은 다음과 같습니다.
IF condition THEN ... ELSE condition THEN ... ELSE ... END IF
예: 조건부 판단을 하려면 IF문을 사용하세요.
-- 创建存储过程 CREATE PROCEDURE example_if (IN x INT) BEGIN IF x = 1 THEN SELECT 1; ELSEIF x = 2 THEN SELECT 2; ELSE SELECT 3; END IF; END; -- 调用存储过程 CALL example_if(2);
참고: MySQL의 IF( ) 함수는 여기의 IF 문과 다릅니다.
2. CASE 문
CASE 문은 WHEN 뒤의 VALUE에서 CASE 뒤의 VALUE와 같은 값을 먼저 검색합니다. 그렇지 않으면 ELSE 이후의 내용이 실행됩니다. CASE문은 다음과 같이 표현됩니다.
CASE value WHEN value THEN ... WHEN value THEN ... ELSE ... END CASE
CASE문의 또 다른 문법적 표현은 다음과 같습니다.
CASE WHEN value THEN ... WHEN value THEN ... ELSE ... END CASE
예: CASE문을 사용하여 조건부 판단을 합니다.
-- 创建存储过程 CREATE PROCEDURE example_case(IN x INT) BEGIN CASE x WHEN 1 THEN SELECT 1; WHEN 2 THEN SELECT 2; ELSE SELECT 3; END CASE; END; -- 调用存储过程 CALL example_case(5);
3. WHILE 루프문이 실행되면 먼저 조건 조건이 true인지 확인하고, 그렇지 않으면 루프를 종료합니다. 구문은 다음과 같이 표시됩니다. WHILE condition DO
...
END WHILE;
WHILE 루프 문을 사용하여 처음 100의 합계를 찾습니다.
-- 创建存储过程 CREATE PROCEDURE example_while(OUT sum INT) BEGIN DECLARE i INT DEFAULT 1; DECLARE s INT DEFAULT 0; WHILE i <= 100 DO SET s = s+i; SET i = i+1; END WHILE; SET sum = s; END; -- 调用存储过程 CALL example_while(@sum); SELECT @sum;
4. LOOP 루프 문
LOOP 루프에는 루프 조건이 내장되어 있지 않지만 LEAVE 문을 통해 루프를 종료할 수 있습니다. LOOP 문의 표현은 다음과 같습니다. LOOP
...
END LOOP
LEAVE 문은 BEGIN...END 또는 루프와 함께 자주 사용되며 그 표현은 다음과 같습니다.
LEAVE label
label은 문에 표시되는 이름으로 이 이름을 사용자 정의합니다.
예:LOOP 루프 문을 사용하여 처음 100의 합을 구합니다.
-- 创建存储过程 CREATE PROCEDURE example_loop(OUT sum INT) BEGIN DECLARE i INT DEFAULT 1; DECLARE s INT DEFAULT 0; loop_label:LOOP SET s = s+i; SET i = i+1; IF i>100 THEN -- 退出LOOP循环 LEAVE loop_label; END IF; END LOOP; SET sum = s; END; -- 调用存储过程 CALL example_loop(@sum); SELECT @sum;
5. REPEAT 루프 문
REPEAT 루프 문은 먼저 루프 본문을 한 번 실행한 다음 조건이 true인지 확인한 다음 루프를 종료하고 그렇지 않으면 루프를 계속 실행합니다. REPEAT 문의 표현은 다음과 같습니다: REPEAT
...
UNTIL condition
END REPEAT
REPEAT 루프 문을 사용하여 처음 100의 합을 구합니다.
-- 创建存储过程 CREATE PROCEDURE example_repeat(OUT sum INT) BEGIN DECLARE i INT DEFAULT 1; DECLARE s INT DEFAULT 0; REPEAT SET s = s+i; SET i = i+1; UNTIL i > 100 END REPEAT; SET sum = s; END; -- 调用存储过程 CALL example_repeat(@sum); SELECT @sum;
6. ITERATE 문
ITERATE 문은 "다시 반복"을 의미하는 LOOP, REPEAT 및 WHILE 문 내에 나타날 수 있습니다. 명령문 형식은 다음과 같습니다. ITERATE label
10 내에서 홀수 값의 합을 구합니다.
-- 创建存储过程 CREATE PROCEDURE example_iterate(OUT sum INT) BEGIN DECLARE i INT DEFAULT 0; DECLARE s INT DEFAULT 0; loop_label:LOOP SET i = i+1; IF i > 10 THEN -- 退出整个循环 LEAVE loop_label; END IF; IF (i mod 2) THEN SET s = s+i; ELSE -- 退出本次循环,继续下一个循环 ITERATE loop_label; END IF; END LOOP; SET sum = s; END; -- 调用存储过程 CALL example_iterate(@sum); SELECT @sum
더 많은 프로그래밍 관련 지식을 보려면 프로그래밍 학습 웹사이트를 방문하세요! !
위 내용은 mysql 흐름 제어 문에는 무엇이 포함되어 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!