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
'Oracle Database 강좌 > 4. PL SQL' 카테고리의 다른 글
예외 처리: EXCEPTION 처리 (0) | 2024.10.07 |
---|---|
프로시저, 함수: 프로시저와 함수의 차이점, 생성 및 호출 방법 (0) | 2024.10.07 |
변수 선언 및 할당: 변수의 종류와 사용법 (0) | 2024.10.07 |
PL/SQL 블록 구조: DECLARE, BEGIN, END 키워드 설명 (0) | 2024.10.07 |
PL/SQL이란 무엇인가요? PL/SQL의 개념과 특징 (0) | 2024.10.07 |