PL/SQL - 상수와 리터럴: 초보자 가이드
안녕하세요, 열망하는 프로그래머 여러분! 오늘 우리는 PL/SQL의 세계에 흥미로운 여정을 떠납니다. 특히 상수와 리터럴에 대해 집중적으로 다룰 것입니다. 이 용어들이 지금은 외계어 같아 보일 수 있지만, 이 튜토리얼이 끝나면 이 단어들을 마치 오랜 경험자처럼 다루게 될 것입니다!
상수와 리터럴이란?
들어가기 전에 이 용어들을 간단히 설명해 보겠습니다:
- 상수는 프로그램 실행 전체에서 변하지 않는 값을 의미합니다.
- 리터럴은 프로그램에 직접 나타나는 값을 의미합니다.
상수를 좋아하는 숫자를 항상 사용하는 것처럼 생각하고, 리터럴은 종이에 적는 숫자로 생각해 보세요. 이 개념들을 더 자세히 탐구해 보겠습니다!
상수 선언
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