PL/SQL - 연산자

안녕하세요, 열망하는 프로그래머 여러분! 오늘 우리는 PL/SQL 연산자의 세계로 흥미로운 여정을 떠납니다. 코드를 한 줄도 적어보지 않았다면 걱정하지 마세요 - 우리는 매우 기본적인 것부터 시작하여 단계적으로 올라갈 것입니다. 이 튜토리얼이 끝나면, 데이터를 마치 프로처럼 조작할 수 있을 것입니다!

PL/SQL - Operators

산술 연산자

먼저 익숙한 것으로 시작해보겠습니다: 수학! PL/SQL 산술 연산자는 학교에서 배운 것과 정확히 같이 작동합니다. 이들은 숫자에 기본적인 수학 연산을 수행할 수 있게 해줍니다.

PL/SQL의 산술 연산자 표입니다:

연산자 설명 예시
+ 덧셈 5 + 3 = 8
- 뺄셈 10 - 4 = 6
* 곱셈 3 * 4 = 12
/ 나눗셈 15 / 3 = 5
** 지수 2 ** 3 = 8

이 연산자들을 작동하는 것을 간단한 PL/SQL 코드 예제로 보겠습니다:

DECLARE
num1 NUMBER := 10;
num2 NUMBER := 5;
result NUMBER;
BEGIN
result := num1 + num2;
DBMS_OUTPUT.PUT_LINE('덧셈: ' || result);

result := num1 - num2;
DBMS_OUTPUT.PUT_LINE('뺄셈: ' || result);

result := num1 * num2;
DBMS_OUTPUT.PUT_LINE('곱셈: ' || result);

result := num1 / num2;
DBMS_OUTPUT.PUT_LINE('나눗셈: ' || result);

result := num1 ** 2;
DBMS_OUTPUT.PUT_LINE('지수: ' || result);
END;

이 예제에서 우리는 두 변수 num1num2를 선언하고, 그들에 다양한 산술 연산을 수행합니다. 결과는 출력에 인쇄됩니다.

이 코드를 실행하면 다음을 볼 수 있습니다:

덧셈: 15
뺄셈: 5
곱셈: 50
나눗셈: 2
지수: 100

관계 연산자

이제 관계 연산자로 넘어가겠습니다. 이들은 두 가치를 비교하고 그 관계를 결정하는 데 사용됩니다. 이들은 "이것이 저것보다 큰가?" 또는 "이 두 가지가 같은가?"와 같은 질문을 할 때와 같습니다.

PL/SQL의 관계 연산자 표입니다:

연산자 설명 예시
= 같다 5 = 5는 참
<> 다르다 5 <> 3는 참
< 작다 3 < 5는 참
> 크다 5 > 3는 참
<= 작거나 같다 3 <= 3는 참
>= 크거나 같다 5 >= 5는 참

이들을 작동하는 것을 보겠습니다:

DECLARE
a NUMBER := 10;
b NUMBER := 20;
BEGIN
IF a = b THEN
DBMS_OUTPUT.PUT_LINE('a는 b와 같다');
ELSIF a < b THEN
DBMS_OUTPUT.PUT_LINE('a는 b보다 작다');
ELSE
DBMS_OUTPUT.PUT_LINE('a는 b보다 크다');
END IF;

IF a <> b THEN
DBMS_OUTPUT.PUT_LINE('a는 b와 다르다');
END IF;
END;

이 코드는 ab를 관계 연산자를 사용하여 비교합니다. 이를 실행하면 다음을 볼 수 있습니다:

a는 b보다 작다
a는 b와 다르다

비교 연산자

PL/SQL의 비교 연산자는 관계 연산자와 매우 유사하지만, NULL 값을 확인하고 다른 데이터 타입을 비교하는 기능을 추가로 제공합니다.

비교 연산자 표입니다:

연산자 설명
IS NULL 값이 NULL인지 확인
IS NOT NULL 값이 NULL이 아닌지 확인
LIKE 패턴 일치
BETWEEN 값이 범위 내에 있는지 확인
IN 값이 목록의 어떤 값과 일치하는지 확인

예제를 보겠습니다:

DECLARE
name VARCHAR2(20) := 'John Doe';
age NUMBER := 25;
BEGIN
IF name IS NOT NULL THEN
DBMS_OUTPUT.PUT_LINE('이름은: ' || name);
END IF;

IF name LIKE 'J%' THEN
DBMS_OUTPUT.PUT_LINE('이름은 J로 시작합니다');
END IF;

IF age BETWEEN 20 AND 30 THEN
DBMS_OUTPUT.PUT_LINE('나이는 20에서 30사이입니다');
END IF;

IF age IN (25, 30, 35) THEN
DBMS_OUTPUT.PUT_LINE('나이는 25, 30, 또는 35입니다');
END IF;
END;

이 코드는 다양한 비교 연산자를 보여줍니다. 이를 실행하면 다음을 볼 수 있습니다:

이름은: John Doe
이름은 J로 시작합니다
나이는 20에서 30사이입니다
나이는 25, 30, 또는 35입니다

논리 연산자

논리 연산자는 여러 조건을 결합할 수 있게 해줍니다. 이들은 일상적인 언어에서 "그리고"와 "또는"와 같은 복잡한 상황을 설명할 때와 같습니다.

논리 연산자 표입니다:

연산자 설명
AND 두 조건 모두 참이면 참
OR 두 조건 중 하나가 참이면 참
NOT 조건의 결과를 반전

이들을 작동하는 것을 보겠습니다:

DECLARE
age NUMBER := 25;
has_license BOOLEAN := TRUE;
BEGIN
IF age >= 18 AND has_license THEN
DBMS_OUTPUT.PUT_LINE('당신은 차를 몰 수 있습니다');
END IF;

IF age < 18 OR NOT has_license THEN
DBMS_OUTPUT.PUT_LINE('당신은 차를 몰 수 없습니다');
ELSE
DBMS_OUTPUT.PUT_LINE('당신은 차를 몰 수 있습니다');
END IF;
END;

이 코드는 사람이 차를 몰 수 있는지 확인합니다. 이를 실행하면 다음을 볼 수 있습니다:

당신은 차를 몰 수 있습니다
당신은 차를 몰 수 있습니다

PL/SQL 연산자 우선순위

PL/SQL 연산자는 수학과 마찬가지로 특정 순서로 평가됩니다. 이를 이해하는 것은 올바르고 예측 가능한 코드를 작성하는 데 필수적입니다.

연산자 우선순위는 다음과 같습니다 (가장 높은 순서부터 낮은 순서로):

  1. 지수 (**)
  2. 곱셈 (*), 나눗셈 (/)
  3. 덧셈 (+), 뺄셈 (-)
  4. 비교 연산자 (=, <>, <, >, <=, >=)
  5. IS NULL, LIKE, BETWEEN, IN
  6. NOT
  7. AND
  8. OR

이를 작동하는 예제를 보겠습니다:

DECLARE
result BOOLEAN;
BEGIN
result := 5 > 3 AND 10 / 2 = 5 OR NOT (2 + 2 = 4);

IF result THEN
DBMS_OUTPUT.PUT_LINE('결과는 참입니다');
ELSE
DBMS_OUTPUT.PUT_LINE('결과는 거짓입니다');
END IF;
END;

이 예제에서 표현식은 다음과 같이 평가됩니다:

  1. 10 / 2 = 5 (나눗셈, 그런 다음 비교)
  2. 5 > 3 (비교)
  3. 2 + 2 = 4 (덧셈, 그런 다음 비교)
  4. NOT (2 + 2 = 4) (논리 NOT)
  5. 5 > 3 AND 10 / 2 = 5 (논리 AND)
  6. 결과의 OR (논리 OR)

이 코드를 실행하면 다음을 볼 수 있습니다:

결과는 참입니다

이제 PL/SQL의 주요 연산자 유형을 다루었습니다. 연습이 완벽함을 기억하세요. 자신의 코드 예제를 작성하고 다양한 연산자 조합을 실험해보세요. 얼마 지나지 않아 복잡한 PL/SQL 문장을 자유롭게 작성할 수 있을 것입니다!

Credits: Image by storyset