PL/SQL - 연산자
안녕하세요, 열망하는 프로그래머 여러분! 오늘 우리는 PL/SQL 연산자의 세계로 흥미로운 여정을 떠납니다. 코드를 한 줄도 적어보지 않았다면 걱정하지 마세요 - 우리는 매우 기본적인 것부터 시작하여 단계적으로 올라갈 것입니다. 이 튜토리얼이 끝나면, 데이터를 마치 프로처럼 조작할 수 있을 것입니다!
산술 연산자
먼저 익숙한 것으로 시작해보겠습니다: 수학! 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;
이 예제에서 우리는 두 변수 num1
과 num2
를 선언하고, 그들에 다양한 산술 연산을 수행합니다. 결과는 출력에 인쇄됩니다.
이 코드를 실행하면 다음을 볼 수 있습니다:
덧셈: 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;
이 코드는 a
와 b
를 관계 연산자를 사용하여 비교합니다. 이를 실행하면 다음을 볼 수 있습니다:
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 연산자는 수학과 마찬가지로 특정 순서로 평가됩니다. 이를 이해하는 것은 올바르고 예측 가능한 코드를 작성하는 데 필수적입니다.
연산자 우선순위는 다음과 같습니다 (가장 높은 순서부터 낮은 순서로):
- 지수 (**)
- 곱셈 (*), 나눗셈 (/)
- 덧셈 (+), 뺄셈 (-)
- 비교 연산자 (=, <>, <, >, <=, >=)
- IS NULL, LIKE, BETWEEN, IN
- NOT
- AND
- 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;
이 예제에서 표현식은 다음과 같이 평가됩니다:
- 10 / 2 = 5 (나눗셈, 그런 다음 비교)
- 5 > 3 (비교)
- 2 + 2 = 4 (덧셈, 그런 다음 비교)
- NOT (2 + 2 = 4) (논리 NOT)
- 5 > 3 AND 10 / 2 = 5 (논리 AND)
- 결과의 OR (논리 OR)
이 코드를 실행하면 다음을 볼 수 있습니다:
결과는 참입니다
이제 PL/SQL의 주요 연산자 유형을 다루었습니다. 연습이 완벽함을 기억하세요. 자신의 코드 예제를 작성하고 다양한 연산자 조합을 실험해보세요. 얼마 지나지 않아 복잡한 PL/SQL 문장을 자유롭게 작성할 수 있을 것입니다!
Credits: Image by storyset