PL/SQL - 상수와 리터럴: 초보자 가이드

안녕하세요, 열망하는 프로그래머 여러분! 오늘 우리는 PL/SQL의 세계에 흥미로운 여정을 떠납니다. 특히 상수와 리터럴에 대해 집중적으로 다룰 것입니다. 이 용어들이 지금은 외계어 같아 보일 수 있지만, 이 튜토리얼이 끝나면 이 단어들을 마치 오랜 경험자처럼 다루게 될 것입니다!

PL/SQL - Constants and Literals

상수와 리터럴이란?

들어가기 전에 이 용어들을 간단히 설명해 보겠습니다:

  • 상수는 프로그램 실행 전체에서 변하지 않는 값을 의미합니다.
  • 리터럴은 프로그램에 직접 나타나는 값을 의미합니다.

상수를 좋아하는 숫자를 항상 사용하는 것처럼 생각하고, 리터럴은 종이에 적는 숫자로 생각해 보세요. 이 개념들을 더 자세히 탐구해 보겠습니다!

상수 선언

PL/SQL에서 상수를 선언하는 것은 프로그램에게 "이 값을 기억해, 이것은 중요하고 변하지 않을 거야!"라고 말하는 것과 같습니다.

기본 문법은 다음과 같습니다:

상수이름 CONSTANT 데이터유형 := 값;

이를 간단히 설명하면:

  • 상수이름: 상수에 부여하는 이름입니다.
  • CONSTANT: 상수를 선언하는 데 사용되는 키워드입니다.
  • 데이터유형: 상수가 가지는 데이터 유형입니다 (예: NUMBER, VARCHAR2 등).
  • :=: PL/SQL에서 사용되는 할당 연산자입니다.
  • : 상수에 할당할 실제 값입니다.

예제 1: 수학 상수 선언

DECLARE
pi CONSTANT NUMBER(7,6) := 3.141592;
BEGIN
DBMS_OUTPUT.PUT_LINE('pi의 값은: ' || pi);
END;

이 예제에서 우리는 pi라는 상수를 3.141592의 값으로 선언합니다. NUMBER(7,6)은 총 7자리 숫자로, 그 중 6자리는 소수점 이하입니다.

이 코드를 실행하면 다음과 같은 출력을 보여줍니다:

pi의 값은: 3.141592

예제 2: 문자열 상수 선언

DECLARE
인사말 CONSTANT VARCHAR2(20) := '안녕하세요, PL/SQL 세상!';
BEGIN
DBMS_OUTPUT.PUT_LINE(인사말);
END;

여기서 우리는 인사말이라는 상수를 문자열 값으로 선언합니다. VARCHAR2(20)은 최대 20자리의 가변 길이 문자열을 의미합니다.

출력:

안녕하세요, PL/SQL 세상!

PL/SQL 리터럴

이제 리터럴에 대해 이야기해 보겠습니다. 리터럴은 코드에서 사용되는 원시 값입니다. PL/SQL은 다양한 유형의 리터럴을 지원합니다:

1. 수학 리터럴

이들은 숫자입니다. 간단하지 않나요? 정수 또는 부동소수점 숫자일 수 있습니다.

DECLARE
나이 NUMBER := 25;  -- 정수 리터럴
키 NUMBER := 5.9;  -- 부동소수점 리터럴
BEGIN
DBMS_OUTPUT.PUT_LINE('나이: ' || 나이);
DBMS_OUTPUT.PUT_LINE('키: ' || 키 || ' 피트');
END;

출력:

나이: 25
키: 5.9 피트

2. 문자 리터럴

이들은 단일 문자로, 单一引用符로 둘러싸여 있습니다.

DECLARE
학점 CHAR := 'A';
BEGIN
DBMS_OUTPUT.PUT_LINE('당신의 학점은: ' || 학점);
END;

출력:

당신의 학점은: A

3. 문자열 리터럴

이들은 단어序列로, 单一引用符로 둘러싸여 있습니다.

DECLARE
이름 VARCHAR2(20) := 'John Doe';
BEGIN
DBMS_OUTPUT.PUT_LINE('환영합니다, ' || 이름 || '!');
END;

출력:

환영합니다, John Doe!

4. 부울 리터럴

PL/SQL에는 세 가지 부울 리터럴이 있습니다: TRUE, FALSE, NULL.

DECLARE
학생 Boolean := TRUE;
BEGIN
IF 학생 THEN
DBMS_OUTPUT.PUT_LINE('이 사람은 학생입니다.');
ELSE
DBMS_OUTPUT.PUT_LINE('이 사람은 학생이 아닙니다.');
END IF;
END;

출력:

이 사람은 학생입니다.

5. 날짜 리터럴

날짜 리터럴은 단일引用符로 둘러싸여 있으며, NLS_DATE_FORMAT 매개변수에 지정된 형식이어야 합니다.

DECLARE
입사일 DATE := '01-JAN-2023';
BEGIN
DBMS_OUTPUT.PUT_LINE('입사일: ' || 입사일);
END;

출력:

입사일: 01-JAN-23

모든 것을 함께 사용해 보자

이제 상수와 리터럴을 다루고 보았으므로, 보다 복잡한 예제에서 이들을 함께 사용해 보겠습니다:

DECLARE
-- 상수
pi CONSTANT NUMBER(7,6) := 3.141592;
인사말 CONSTANT VARCHAR2(20) := '안녕하세요, ';

-- 리터럴을 사용한 변수
반지름 NUMBER := 5;
이름 VARCHAR2(20) := 'Alice';
원 Boolean := TRUE;

-- 계산된 값
면적 NUMBER;
BEGIN
IF 원 THEN
면적 := pi * 반지름 * 반지름;
DBMS_OUTPUT.PUT_LINE(인사말 || 이름 || '!');
DBMS_OUTPUT.PUT_LINE('당신의 원의 면적은: ' || ROUND(면적, 2) || ' 제곱 단위입니다.');
ELSE
DBMS_OUTPUT.PUT_LINE('이것은 원 계산이 아닙니다.');
END IF;
END;

출력:

안녕하세요, Alice!
당신의 원의 면적은: 78.54 제곱 단위입니다.

이 예제에서 우리는 상수(pi인사말), 수학 리터럴(5), 문자열 리터럴('Alice'), 부울 리터럴(TRUE)를 사용하고, 이러한 값을 사용하여 계산을 수행하고 결과를 표시합니다.

결론

축하합니다! 지금 당신은 PL/SQL의 상수와 리터럴에 대한 첫 걸음을 내디디셨습니다. 상수는 마치 충실한 친구처럼 프로그램 전체를 통해 함께하며, 리터럴은 프로그래밍의 기본 블록으로 사용됩니다.

프로그래밍 여정을 계속하면서 이 개념들을 점점 더 많이 사용하게 될 것입니다. 이들은 어떤 프로그래머의 도구箱에서 중요한 도구입니다. 코드를 더 읽기 쉽게, 유지보수하기 쉽게, 효율적으로 만들어줍니다.

계속 연습하고, 호기심을 유지하면, 깜둥이 없이 복잡한 PL/SQL 프로그램을 작성할 수 있을 것입니다. 행복하게 코딩하세요!

Credits: Image by storyset