반응형
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] WHILE 문 사용 방법 및 예시
SQL/MYSQL

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

2024. 12. 28. 12:00
728x90
반응형

 

소개  
MySQL에서 WHILE 문은 반복적으로 특정 작업을 수행해야 할 때 유용한 제어 구조입니다. 프로세스를 더 효율적으로 관리하고 조건에 따라 반복을 제어할 수 있도록 도와줍니다. WHILE 문은 명확하게 조건과 반복 작업을 분리할 수 있어 코드를 읽고 유지보수하기 쉽습니다. 여기서는 WHILE 문이 무엇인지, 어떻게 활용하는지, 간단한 예시를 통해 설명해보겠습니다.



주요 특징  

- 조건 기반 반복 실행:  
  WHILE 문은 지정된 조건이 `TRUE`일 때만 반복 실행됩니다. 조건이 `FALSE`가 되면 즉시 반복을 종료합니다.  
- 유연한 종료 조건:  
  반복을 시작하기 전에 조건을 평가하기 때문에 반복을 미리 종료할 수 있습니다.  
- BEGIN ... END 블록 사용:  
  WHILE 문 안에 여러 SQL 명령문을 포함하려면 BEGIN ... END 블록을 묶어야 합니다.  



사용 예시  

다음은 WHILE 문을 사용하는 간단한 예제입니다. 아래 코드는 특정 숫자로부터 1씩 증가시키며 합계를 계산하는 로직을 보여줍니다.  

예시 코드:

DELIMITER //

CREATE PROCEDURE CalculateSum()
BEGIN
    DECLARE counter INT DEFAULT 1;
    DECLARE total INT DEFAULT 0;

    WHILE counter <= 10 DO
        SET total = total + counter;
        SET counter = counter + 1;
    END WHILE;

    SELECT total AS SumResult;
END//

DELIMITER ;


실행 순서 설명:  
1. 변수 선언:
   - `counter`: 반복 횟수를 제어하는 변수.
   - `total`: 누적 결과를 저장하는 변수.  
2. WHILE 조건:
   - `counter <= 10`: `counter`가 10 이하일 때 반복을 실행합니다.
3. 반복 동작:
   - `total`에 현재 `counter` 값을 더합니다.
   - `counter`를 1씩 증가시킵니다.
4. 종료:
   - `counter`가 10을 초과하면 WHILE 문을 빠져나가고, 결과를 반환합니다.  

실행 결과:

CALL CalculateSum();



출력:  

+--+
| SumResult |
+--+
|        55 |
+--+




이 코드는 1부터 10까지의 합계를 계산하여 결과로 `55`를 반환합니다.  



장단점 분석  

장점:
- 가독성과 유지보수성:  
  WHILE 조건으로 반복 종료의 기준을 명확히 이해할 수 있습니다.  
- 유연한 구조:  
  다양한 조건 로직을 추가해 더욱 복잡한 작업에도 적용 가능합니다.  
- 비교적 간단한 구문:  
  다른 반복문(`LOOP`, `REPEAT`)에 비해 간결한 경우가 많습니다.  

단점:
- 무한 루프 위험:  
  조건을 잘못 설정하거나 종료 조건을 포함하지 않으면 무한 루프가 발생할 수 있습니다.  
- 단조로운 작업에 부적합:  
  단순히 특정 범위를 순회하는 작업이라면 FOR 루프가 더 적합할 수 있습니다.  



결론  

MySQL WHILE 문은 반복 작업이 필요한 프로세스에 강력한 기능을 제공합니다. 특히 반복 종료 조건을 명확하게 정의해야 하는 경우 유용하지만, 조건 설정 시 무한 루프를 방지하기 위해 주의해야 합니다. 단일 작업보다는 조건 기반의 반복 로직이 필요한 상황에서 사용해보세요.  



참고 자료  
- [MySQL 공식 문서 - WHILE Statement](https://dev.mysql.com/doc/refman/8.0/en/while.html)

728x90
반응형

'SQL > MYSQL' 카테고리의 다른 글

[MySQL] Cursor Open 문 사용 방법 및 예시  (1) 2025.01.03
[MySQL] Cursor FETCH 문 사용 방법 및 예시  (0) 2024.12.31
[MySQL] Cursor DECLARE 문 사용 방법 및 예시시  (0) 2024.12.30
[MySQL] Cursor CLOSE 문 사용 방법 및 예시  (2) 2024.12.29
[MySQL] RETURN 문 사용 방법 및 예시  (0) 2024.12.27
[MySQL] REPEAT 문 사용 방법 및 예시  (0) 2024.12.27
[MySQL] LOOP 문 사용 방법 및 예시  (1) 2024.12.26
[MySQL] LEAVE 문 사용 방법 및 예시  (0) 2024.12.26
    'SQL/MYSQL' 카테고리의 다른 글
    • [MySQL] Cursor DECLARE 문 사용 방법 및 예시시
    • [MySQL] Cursor CLOSE 문 사용 방법 및 예시
    • [MySQL] RETURN 문 사용 방법 및 예시
    • [MySQL] REPEAT 문 사용 방법 및 예시
    Ant_U
    Ant_U

    티스토리툴바