반응형
Ant_U
DBA 개미
Ant_U
전체 방문자
오늘
어제
  • 분류 전체보기 (262)
    • AWS (3)
    • C# (1)
    • SQL (236)
      • MYSQL (186)
      • MSSQL (50)
    • 자격증 (20)
      • SQLD (12)
      • SQLP (8)

인기 글

최근 글

250x250
hELLO · Designed By 정상우.
Ant_U

DBA 개미

[MySQL] REPEAT 문 사용 방법 및 예시
SQL/MYSQL

[MySQL] REPEAT 문 사용 방법 및 예시

2024. 12. 27. 11:07
728x90
반응형

 

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는 후치 평가 방식으로 코드를 반복 실행할 수 있는 강력한 도구입니다. 필요에 따라 적절히 사용하여 저장 프로시저나 복잡한 데이터 처리 작업을 효율적으로 구현할 수 있습니다!

728x90
반응형

'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 문 사용 방법 및 예시  (1) 2024.12.26
[MySQL] LEAVE 문 사용 방법 및 예시  (0) 2024.12.26
[MySQL] ITERATE 사용 방법 및 예시  (0) 2024.12.24
[MySQL] IF 문 사용 방법 및 예시  (0) 2024.12.23
    'SQL/MYSQL' 카테고리의 다른 글
    • [MySQL] WHILE 문 사용 방법 및 예시
    • [MySQL] RETURN 문 사용 방법 및 예시
    • [MySQL] LOOP 문 사용 방법 및 예시
    • [MySQL] LEAVE 문 사용 방법 및 예시
    Ant_U
    Ant_U

    티스토리툴바