PL/SQL - 데이터 유형
안녕하세요, 야심 찬 프로그래머 여러분! 오늘 우리는 PL/SQL 데이터 유형의 fascineting 세계로 접근해 보겠습니다. 프로그래밍에 처음이라면 걱정 마세요; 이 여정을 단계별로 안내해 드리겠습니다. 이 튜토리얼의 끝을 맺을 때, 여러분은 PL/SQL의 다양한 데이터 유형에 편안하게 느끼고 코딩 여정을 시작할 준비가 되 있을 것입니다!
PL/SQL 스칼라 데이터 유형 및 하위 유형
기본적인 내용부터 시작해 보겠습니다. PL/SQL에서 스칼라 데이터 유형은 우리 프로그램의 기본 블록입니다. 이들은 단일 값을 나타냅니다. 예를 들어 숫자나 텍스트입니다.
스칼라 데이터 유형이란?
스칼라 데이터 유형은 PL/SQL에서 가장 간단한 형태의 데이터입니다. 이들은 우리 프로그래밍 우주의 원자와 같아요 - 작고 분할할 수 없는 단위로, 더 복잡한 구조를 만들기 위해 사용됩니다.
다음은 스칼라 데이터 유형을 설명하는 간단한 예제입니다:
DECLARE
my_name VARCHAR2(50) := 'John Doe';
BEGIN
DBMS_OUTPUT.PUT_LINE('제 이름은: ' || my_name);
END;
이 예제에서 my_name
은 VARCHAR2
데이터 유형의 변수로, 텍스트를 저장하는 데 사용됩니다. 이에 'John Doe' 값을 할당했습니다. 이 코드를 실행하면 다음과 같은 출력이 나타납니다: "제 이름은: John Doe".
PL/SQL 수학 데이터 유형 및 하위 유형
이제 숫자에 대해 이야기해 보겠습니다. PL/SQL에는 다양한 유형의 숫자를 처리할 수 있는 여러 수학 데이터 유형이 있습니다.
일반 수학 데이터 유형
다음은 일반적인 수학 데이터 유형과 그 예제입니다:
데이터 유형 | 설명 | 예제 |
---|---|---|
NUMBER | 일반 목적 숫자 | NUMBER(10,2) |
INTEGER | 정수 | INTEGER |
BINARY_FLOAT | 32비트 부동소수점 숫자 | BINARY_FLOAT |
BINARY_DOUBLE | 64비트 부동소수점 숫자 | BINARY_DOUBLE |
이제 이들을 실제로 사용해 보겠습니다:
DECLARE
my_integer INTEGER := 42;
my_float BINARY_FLOAT := 3.14;
my_salary NUMBER(8,2) := 5000.50;
BEGIN
DBMS_OUTPUT.PUT_LINE('답은: ' || my_integer);
DBMS_OUTPUT.PUT_LINE('Pi는 약: ' || my_float);
DBMS_OUTPUT.PUT_LINE('제 연봉은: $' || my_salary);
END;
이 스크립트는 세 가지 다른 수학 유형의 변수를 선언합니다. my_salary
의 NUMBER(8,2)
유형은 총 8자리까지 저장할 수 있으며, 소수점 이하 2자리입니다.
PL/SQL 문자 데이터 유형 및 하위 유형
텍스트 데이터는 프로그래밍에서 매우 중요합니다. PL/SQL은 텍스트를 효율적으로 처리할 수 있는 여러 문자 데이터 유형을 제공합니다.
일반 문자 데이터 유형
다음은 일반적인 문자 데이터 유형과 그 예제입니다:
데이터 유형 | 설명 | 예제 |
---|---|---|
VARCHAR2 | 가변 길이 문자열 | VARCHAR2(100) |
CHAR | 고정 길이 문자열 | CHAR(10) |
NVARCHAR2 | 가변 길이 유니코드 문자열 | NVARCHAR2(100) |
NCHAR | 고정 길이 유니코드 문자열 | NCHAR(10) |
이제 이들을 실제로 사용해 보겠습니다:
DECLARE
my_varchar VARCHAR2(50) := 'Hello, World!';
my_char CHAR(10) := 'Fixed ';
my_nvarchar NVARCHAR2(50) := N'こんにちは'; -- 일본어 "Hello"
BEGIN
DBMS_OUTPUT.PUT_LINE('VARCHAR2: ' || my_varchar);
DBMS_OUTPUT.PUT_LINE('CHAR: ' || my_char || '(끝)');
DBMS_OUTPUT.PUT_LINE('NVARCHAR2: ' || my_nvarchar);
END;
이 스크립트에서 CHAR
유형은 문자열을 고정 길이로 채우기 위해 공백을 추가합니다.
PL/SQL 부울 데이터 유형
부울 데이터 유형은 프로그램에서 결정을 내리는 데 필수적입니다. 부울 데이터 유형은 세 가지 가능한 값을 가질 수 있습니다: TRUE, FALSE, 또는 NULL.
DECLARE
is_student BOOLEAN := TRUE;
has_job BOOLEAN := FALSE;
is_married BOOLEAN;
BEGIN
IF is_student THEN
DBMS_OUTPUT.PUT_LINE('이 사람은 학생입니다.');
END IF;
IF NOT has_job THEN
DBMS_OUTPUT.PUT_LINE('이 사람은 직업이 없습니다.');
END IF;
IF is_married IS NULL THEN
DBMS_OUTPUT.PUT_LINE('이 사람이 결혼했는지 모릅니다.');
END IF;
END;
이 스크립트는 부울 값을 사용하여 프로그램에서 결정을 내리는 방법을 보여줍니다.
PL/SQL 날짜 및 간격 유형
날짜와 시간을 처리할 때, PL/SQL은 이러한 값을 정확하게 처리할 수 있는 특정 데이터 유형을 제공합니다.
일반 날짜 유형
다음은 일반적인 날짜 유형과 그 예제입니다:
데이터 유형 | 설명 | 예제 |
---|---|---|
DATE | 날짜와 시간 | DATE |
TIMESTAMP | 날짜와 시간 및 소수점 초 | TIMESTAMP |
INTERVAL YEAR TO MONTH | 연도와 월의 기간 | INTERVAL YEAR TO MONTH |
INTERVAL DAY TO SECOND | 일, 시, 분, 초의 기간 | INTERVAL DAY TO SECOND |
이제 이들을 실제로 사용해 보겠습니다:
DECLARE
current_date DATE := SYSDATE;
future_date TIMESTAMP := SYSTIMESTAMP + INTERVAL '1' YEAR;
age_interval INTERVAL YEAR TO MONTH;
BEGIN
age_interval := (SYSDATE - TO_DATE('1990-01-01', 'YYYY-MM-DD')) YEAR TO MONTH;
DBMS_OUTPUT.PUT_LINE('현재 날짜: ' || TO_CHAR(current_date, 'DD-MON-YYYY'));
DBMS_OUTPUT.PUT_LINE('1년 후 날짜: ' || TO_CHAR(future_date, 'DD-MON-YYYY HH24:MI:SS.FF'));
DBMS_OUTPUT.PUT_LINE('나이: ' || age_interval);
END;
이 스크립트는 날짜, 타임스탬프 및 간격을 처리하는 방법을 보여줍니다.
PL/SQL 대형 객체(LOB) 데이터 유형
대량의 데이터를 처리할 때, PL/SQL은 LOB(Large Object) 데이터 유형을 제공합니다.
일반 LOB 유형
다음은 일반적인 LOB 유형과 그 예제입니다:
데이터 유형 | 설명 | 예제 |
---|---|---|
CLOB | 문자 대형 객체 | CLOB |
BLOB | 바이너리 대형 객체 | BLOB |
NCLOB | 국제 문자 대형 객체 | NCLOB |
이제 이들을 실제로 사용해 보겠습니다:
DECLARE
my_clob CLOB;
BEGIN
my_clob := '이 매우 긴 문자열은 몇 megabytes에 달할 수 있습니다.';
DBMS_OUTPUT.PUT_LINE(DBMS_LOB.GETLENGTH(my_clob) || ' 문자 길이');
END;
이 스크립트는 CLOB를 생성하고 그 길이를 가져오는 방법을 보여줍니다.
PL/SQL 사용자 정의 하위 유형
PL/SQL은 기존 데이터 유형을 기반으로 자신의 하위 유형을 만들 수 있게 해줍니다. 이는 코드의 가독성과 유지보수성을 높이는 데 도움이 됩니다.
DECLARE
SUBTYPE positive_number IS NUMBER(8,2) CHECK (positive_number > 0);
my_salary positive_number;
BEGIN
my_salary := 5000.50;
DBMS_OUTPUT.PUT_LINE('제 연봉: $' || my_salary);
-- 이는 오류를 발생시킬 것입니다:
-- my_salary := -1000;
END;
이 예제에서 우리는 positive_number
하위 유형을 만들었으며, 이는 항상 양수이어야 합니다.
PL/SQL NULL 값
마지막으로 NULL 값에 대해 이야기해 보겠습니다. PL/SQL에서 NULL 값은 알 수 없거나 사용할 수 없는 값을 나타냅니다. NULL은 0이나 빈 문자열과 다릅니다.
DECLARE
var1 NUMBER;
var2 VARCHAR2(10) := '';
BEGIN
IF var1 IS NULL THEN
DBMS_OUTPUT.PUT_LINE('var1은 NULL입니다');
END IF;
IF var2 IS NOT NULL THEN
DBMS_OUTPUT.PUT_LINE('var2는 NULL이 아니며, 빈 문자열입니다');
END IF;
END;
이 스크립트는 NULL과 빈 문자열의 차이를 보여줍니다.
그렇습니다! 우리는 PL/SQL의 주요 데이터 유형을 다루었습니다. 데이터 유형을 이해하는 것은 효율적이고 오류 없는 코드를 작성하는 데 필수적입니다. 계속 연습하면 PL/SQL 마스터가 될 것입니다!
Credits: Image by storyset