>  기사  >  데이터 베이스  >  mysql 흐름 제어 문에는 무엇이 포함되어 있나요?

mysql 흐름 제어 문에는 무엇이 포함되어 있나요?

青灯夜游
青灯夜游원래의
2020-12-02 11:10:555911검색

mysql의 흐름 제어 문에는 IF 문, CASE 문, LOOP 문, WHILE 문, REPEAT 문, LEAVE 문 및 ITERATE 문이 포함되며 모두 프로그램의 흐름을 제어할 수 있습니다.

mysql 흐름 제어 문에는 무엇이 포함되어 있나요?

흐름 제어 문은 저장 프로시저 및 사용자 지정 함수에서 프로그램 흐름을 제어하는 ​​데 사용할 수 있습니다. 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
LOOP 문을 사용하면 특정 문이나 문 그룹을 반복적으로 실행할 수 있어 루프가 종료될 때까지 루프 내의 문이 반복되며 LEAVE가 구현됩니다. 문은 루프를 종료하는 데 사용됩니다.

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
이 명령문의 형식은 LEAVE와 유사합니다. 차이점은 LEAVE 문은 루프를 종료하는 반면 ITERATE 문은 루프를 다시 시작한다는 것입니다.

예:

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.