오라클 데이터베이스 강좌/4. PL SQL

제어문: IF, LOOP, FOR 등

_Blue_Sky_ 2024. 10. 7. 13:05
728x90
728x90

PL/SQL 제어문: IF, LOOP, FOR 등을 상세히 알아보기

소개

PL/SQL(Procedural Language/SQL)은 Oracle 데이터베이스에서 SQL의 기능을 확장하여 변수 선언, 조건문, 반복문 등의 프로그래밍 요소를 사용할 수 있도록 해주는 언어입니다. 이를 통해 데이터베이스에 대한 복잡한 로직을 구현하고 자동화할 수 있습니다.

이 글에서는 PL/SQL에서 자주 사용되는 제어문인 IF문, LOOP문, FOR문에 대해 자세히 알아보고, 다양한 예제를 통해 이해를 돕도록 하겠습니다.

1. IF문

IF문은 특정 조건이 참인지 거짓인지에 따라 다른 코드 블록을 실행하는 데 사용됩니다.

기본 구조:

IF 조건 THEN
  -- 조건이 참일 때 실행될 명령문
ELSIF 조건 THEN
  -- 다른 조건이 참일 때 실행될 명령문
ELSE
  -- 어떤 조건에도 해당하지 않을 때 실행될 명령문
END IF;
 

예제:

DECLARE
  v_salary NUMBER := 5000;
BEGIN
  IF v_salary > 4000 THEN
    DBMS_OUTPUT.PUT_LINE('급여가 4000원 초과입니다.');
  ELSIF v_salary = 4000 THEN
    DBMS_OUTPUT.PUT_LINE('급여가 4000원입니다.');
  ELSE
    DBMS_OUTPUT.PUT_LINE('급여가 4000원 미만입니다.');
  END IF;
END;
/
 
728x90

2. LOOP문

LOOP문은 특정 조건이 만족될 때까지 반복적으로 코드 블록을 실행하는 데 사용됩니다.

종류:

  • BASIC LOOP: 무한 반복
  • WHILE LOOP: 조건이 참인 동안 반복
  • FOR LOOP: 특정 횟수만큼 반복

BASIC LOOP:

LOOP
  -- 반복될 명령문
  EXIT WHEN 조건; -- 종료 조건
END LOOP;
 

WHILE LOOP:

WHILE 조건 LOOP
  -- 반복될 명령문
END LOOP;
 

FOR LOOP:

FOR i IN 시작값..끝값 LOOP
  -- 반복될 명령문
END LOOP;
 

예제:

DECLARE
  i NUMBER := 1;
BEGIN
  LOOP
    DBMS_OUTPUT.PUT_LINE(i);
    i := i + 1;
    EXIT WHEN i > 10;
  END LOOP;
END;
/
 

3. FOR문

FOR문은 특정 범위의 값을 순차적으로 처리할 때 사용됩니다.

기본 구조:

FOR 변수 IN 시작값..끝값 LOOP
  -- 반복될 명령문
END LOOP;
 

예제:

DECLARE
  v_emp_name employees.first_name%TYPE;
BEGIN
  FOR i IN 1..10 LOOP
    SELECT first_name INTO v_emp_name
    FROM employees
    WHERE employee_id = i;
    DBMS_OUTPUT.PUT_LINE(v_emp_name);
  END LOOP;
END;
/
 

4. 기타 제어문

  • CASE문: 여러 가지 경우를 비교하여 처리
  • GOTO문: 특정 라벨로 이동 (사용은 자제하는 것이 좋음)

결론

PL/SQL의 제어문은 데이터베이스 처리 로직을 구현하는 데 필수적인 요소입니다. IF문, LOOP문, FOR문을 효과적으로 활용하여 복잡한 문제를 해결하고, 데이터베이스 작업을 자동화할 수 있습니다.

참고:

  • 위에 제시된 예제는 간단한 예시이며, 실제 개발에서는 더 복잡하고 다양한 조건과 로직을 사용하게 됩니다.
  • PL/SQL은 강력한 기능을 제공하지만, 잘못 사용하면 예기치 않은 결과를 초래할 수 있으므로 주의해야 합니다.
  • PL/SQL 매뉴얼을 참고하여 더 많은 정보를 얻을 수 있습니다.
728x90
728x90