본문 바로가기

카테고리 없음

PL/SQL에서 오라클 조건문(IF, CASE)을 잘 활용하는 방법

1. 조건문의 개념과 활용

조건문은 프로그래밍에서 특정 조건을 판단하여 해당 조건에 따라 다른 동작을 수행하는 제어 구문입니다. 이는 프로그램의 흐름을 제어하여 조건에 따라 다른 코드 블록을 실행할 수 있게 해주는 중요한 기능입니다.

조건문은 주로 논리식으로 구성되며, 조건을 만족할 경우에는 특정한 코드를 실행하고 만족하지 않을 경우에는 다른 코드를 실행하거나 그냥 넘어갈 수 있습니다. 이를 통해 프로그램은 특정한 환경에 맞추어 유연하게 동작할 수 있게 됩니다.

조건문은 프로그래밍 언어에 따라 다양한 문법으로 제공되며, PL/SQL에서는 IF문과 CASE문을 이용하여 조건문을 작성합니다. IF문은 단순한 조건 판단 및 분기에서 사용되며, CASE문은 여러 가지 경우에 따라 다른 조건을 판단하여 작업을 수행할 때 사용됩니다.

앞으로 IF문과 CASE문의 사용법과 예제를 자세히 알아보도록 하겠습니다.

2. IF문의 사용법과 예제

IF문은 특정 조건이 참인 경우에 해당하는 코드 블록을 실행하는 제어 구문입니다. IF문의 일반적인 구조는 다음과 같습니다:

IF 조건식 THEN
    실행할 코드
END IF;

IF문의 조건식은 참 또는 거짓을 판단할 수 있는 논리식이어야 합니다. 조건식이 참일 경우에는 해당 코드 블록이 실행되고, 거짓일 경우에는 IF문을 무시하고 다음 코드로 진행합니다.

아래는 IF문의 예제입니다. 변수 x의 값에 따라 "x는 양수입니다" 또는 "x는 음수입니다"라는 메시지를 출력하는 프로그램입니다:

DECLARE
    x NUMBER := 10;
BEGIN
    IF x > 0 THEN
        DBMS_OUTPUT.PUT_LINE('x는 양수입니다');
    ELSE
        DBMS_OUTPUT.PUT_LINE('x는 음수입니다');
    END IF;
END;

이 예제에서는 변수 x의 값이 10이므로 조건식 x > 0은 참이 되어 "x는 양수입니다"가 출력됩니다. 만약 x의 값이 -5이었다면 조건식은 거짓이 되므로 "x는 음수입니다"가 출력되었을 것입니다.

IF문은 또한 ELSEIF 블록을 추가하여 여러 개의 조건을 동시에 판단할 수도 있습니다. ELSEIF 블록은 추가적인 조건을 지정하고, 해당 조건이 참인 경우에 실행됩니다. 이를 통해 복잡한 조건식을 다양하게 처리할 수 있습니다.

3. CASE문의 사용법과 예제

CASE문은 여러 가지 경우에 따라 다른 조건을 판단하여 작업을 수행할 때 사용되는 제어 구문입니다. CASE문은 주로 조건이 여러 개이고, 각 조건에 따라 다른 동작을 실행해야 할 때 유용합니다.

CASE문은 크게 단순 CASE문과 검색 CASE문으로 나눌 수 있습니다.

단순 CASE문은 특정 변수나 식의 결과에 따라 다른 동작을 수행하는 경우에 사용됩니다. 일반적인 구조는 다음과 같습니다:

CASE 변수 또는 식
    WHEN 값1 THEN
        동작1
    WHEN 값2 THEN
        동작2
    ...
    ELSE
        동작n
END CASE;

예를 들어, 변수 x가 1일 경우 "x는 1입니다", 변수 x가 2일 경우 "x는 2입니다", 그 외의 경우에는 "x는 1도 2도 아닙니다"라는 메시지를 출력하는 프로그램은 다음과 같이 작성할 수 있습니다:

DECLARE
    x NUMBER := 2;
BEGIN
    CASE x
        WHEN 1 THEN
            DBMS_OUTPUT.PUT_LINE('x는 1입니다');
        WHEN 2 THEN
            DBMS_OUTPUT.PUT_LINE('x는 2입니다');
        ELSE
            DBMS_OUTPUT.PUT_LINE('x는 1도 2도 아닙니다');
    END CASE;
END;

검색 CASE문은 특정 조건에 따라 다른 동작을 수행해야 할 때 사용됩니다. CASE문의 조건식으로 다른 테이블의 컬럼 값을 사용하거나 연산을 수행할 수 있습니다. 일반적인 구조는 다음과 같습니다:

CASE
    WHEN 조건1 THEN
        동작1
    WHEN 조건2 THEN
        동작2
    ...
    ELSE
        동작n
END CASE;

예를 들어, 학생의 점수에 따라 성적을 출력하는 프로그램은 다음과 같이 작성할 수 있습니다:

DECLARE
    score NUMBER := 85;
    grade VARCHAR2(10);
BEGIN
    CASE
        WHEN score >= 90 THEN
            grade := 'A';
        WHEN score >= 80 THEN
            grade := 'B';
        WHEN score >= 70 THEN
            grade := 'C';
        WHEN score >= 60 THEN
            grade := 'D';
        ELSE
            grade := 'F';
    END CASE;

    DBMS_OUTPUT.PUT_LINE('학생의 성적은 ' || grade || '입니다');
END;

이 예제에서는 변수 score의 값이 85이므로 조건식 score >= 80이 참이 되어 grade 변수에 'B'가 할당됩니다. 따라서 "학생의 성적은 B입니다"라는 메시지가 출력됩니다.