MySQL에서 REPEAT Statement는 반복문을 수행하기 위해 사용되는 제어 흐름 구조입니다. 코드 블록을 지정된 조건이 만족될 때까지 반복적으로 실행하려고 할 때 사용됩니다. REPEAT Statement는 주로 저장 프로시저나 저장 함수와 같은 MySQL 코드 블록에서 사용되며, 반복이 끝날 조건을 명시적으로 정의할 수 있습니다.
REPEAT Statement의 문법
REPEAT
-- 실행할 코드 블록
UNTIL 조건식
END REPEAT;
구성 요소
1. REPEAT: 반복문이 시작되는 키워드입니다.
2. UNTIL 조건식: 조건식이 참(TRUE)이 되는 시점에 반복이 종료됩니다.
3. END REPEAT: 반복문의 끝을 명시합니다.
작동 방식
- REPEAT Statement는 조건을 평가하기 전에 실행 코드 블록을 먼저 실행합니다. 즉, 최소 1번은 무조건 실행됩니다(후치 평가 방식).
- 조건식이 참(TRUE)이 되면 해당 반복문이 종료됩니다.
실제 예제: 숫자 더하기
아래는 1부터 10까지의 숫자를 더하는 반복문을 REPEAT Statement를 사용하여 구현한 예제입니다.
테이블과 데이터를 계산하는 저장 프로시저 만들기
DELIMITER $$
CREATE PROCEDURE CalculateSum()
BEGIN
DECLARE sum INT DEFAULT 0; -- 총합을 저장할 변수
DECLARE counter INT DEFAULT 1; -- 반복을 위한 카운터 변수
REPEAT
SET sum = sum + counter; -- 현재 카운터 값을 합산
SET counter = counter + 1; -- 카운터를 1 증가
UNTIL counter > 10 -- 카운터가 10을 초과하면 반복 종료
END REPEAT;
SELECT sum AS TotalSum; -- 최종 결과 출력
END$$
DELIMITER ;
프로시저 실행
CALL CalculateSum();
결과:
plaintext
+----------+
| TotalSum |
+----------+
| 55 |
+----------+
위 코드는 REPEAT Statement를 사용하여 1부터 10까지의 숫자를 더한 결과를 출력합니다.
또 다른 예제: 팩토리얼 계산
숫자의 팩토리얼을 계산하기 위해 REPEAT Statement를 사용할 수도 있습니다.
DELIMITER $$
CREATE PROCEDURE CalculateFactorial(IN n INT)
BEGIN
DECLARE result INT DEFAULT 1; -- 팩토리얼 값을 저장할 변수
DECLARE counter INT DEFAULT 1; -- 카운터 변수
REPEAT
SET result = result counter; -- 팩토리얼 연산
SET counter = counter + 1; -- 카운터 증가
UNTIL counter > n -- 지정된 숫자까지 반복
END REPEAT;
SELECT result AS Factorial; -- 최종 결과 출력
END$$
DELIMITER ;
실행 예시
CALL CalculateFactorial(5);
결과:
plaintext
+-----------+
| Factorial |
+-----------+
| 120 |
+-----------+
중요한 사항
1. REPEAT Statement는 조건문 평가가 뒤에서 이루어지므로 반드시 한 번은 실행되며, 무한 루프에 빠지지 않도록 UNTIL 조건을 반드시 적절히 설정해야 합니다.
2. MySQL의 다른 반복문(e.g., WHILE, LOOP)과 구별하여 사용 목적에 맞춰 선택해야 합니다.
REPEAT Statement의 주요 활용 사례
- 정해진 조건까지 단순하게 반복 작업을 수행해야 할 때.
- 초기화나 변경 값 적용 이후, 조건식을 평가해야 하는 경우.
- 특정 로직을 한 번은 반드시 실행해야 하는 경우.
이처럼 REPEAT Statement는 후치 평가 방식으로 코드를 반복 실행할 수 있는 강력한 도구입니다. 필요에 따라 적절히 사용하여 저장 프로시저나 복잡한 데이터 처리 작업을 효율적으로 구현할 수 있습니다!
'SQL > MYSQL' 카테고리의 다른 글
[MySQL] Cursor DECLARE 문 사용 방법 및 예시시 (0) | 2024.12.30 |
---|---|
[MySQL] Cursor CLOSE 문 사용 방법 및 예시 (2) | 2024.12.29 |
[MySQL] WHILE 문 사용 방법 및 예시 (1) | 2024.12.28 |
[MySQL] RETURN 문 사용 방법 및 예시 (0) | 2024.12.27 |
[MySQL] LOOP 문 사용 방법 및 예시 (0) | 2024.12.26 |
[MySQL] LEAVE 문 사용 방법 및 예시 (0) | 2024.12.26 |
[MySQL] ITERATE 사용 방법 및 예시 (0) | 2024.12.24 |
[MySQL] IF 문 사용 방법 및 예시 (0) | 2024.12.23 |