본문 바로가기
DataBase/Oracle

Oracle SQL 강의 - 07강 오라클 데이터 형식 #1 (문자 형식)

by HJ0216 2023. 2. 20.

이 글은 뉴렉쳐 오라클 데이터베이스 SQL 강의 수강하며 정리한 글입니다.

 

 

07강 오라클 데이터 형식 #1 (문자 형식)

 

Oracle Built-in Data Type

1. Character 형식: ‘’

CHAR(50): 크기가 50byte인 CHAR

→ 고정 길이이므로 다 사용하지 않아도 빈칸으로 남아있게 됨

⚠️ 가변 길이 데이터의 경우 공간의 비효율성 발생

예: 생일, 전화번호 등

 

VARCHAR2(500): 크기가 최대 500개인 CHAR

→ 쓰지 않는 데이터 공간은 반환

예: ID

 

⚠️ 고정길이가 아니기때문에 데이터 검색 시, 처음부터 살펴봐야하는 불편함 발생

→ 검색 속도를 고려했을 때, 고정길이 Data는 CHAR, 가변길이 Data는 VARCHAR 사용이 바람직

 

NCHAR(n): 세계 각국의 언어를 사용하여 저장할 수 있음

→ ⚠️ size가 2~3byte로 1byte인 CHAR보다 용량이 큰 단점

영어, 숫자가 아닌 다른 나라 언어를 사용할 경우 사용

 

(⭐ CHAR(1 CHAR)이 아닌 NCHAR을 사용하는 게 좋은 이유 → 1 CHAR: 3byte, NCHAR: 2byte)

NVARCHAR(n): NCHAR(n) + VARCHAR(n)

⭐ 2byte: ‘ab’, 6 byte: ‘한글’

 

CHAR MAX SIZE

32767 bytes or characters if MAX_STRING_SIZE = EXTENDED

4000 bytes or characters if MAX_STRING_SIZE = STANDARD

 

데이터 특성에 맞게 CHAR type 변환

CREATE TABLE MEMBER
(
    ID       VARCHAR2(50),
    PWD      VARCHAR2(50),
    NAME     VARCHAR2(50),
    GENDER   VARCHAR2(50),
    AGE      NUMBER,
    BIRTHDAY VARCHAR2(50),
    PHONE    VARCHAR2(50),
    REGDATE  DATE
    
);
CREATE TABLE MEMBER
(
    ID       VARCHAR2(50),
    PWD      NVARCHAR2(50),
    NAME     NVARCHAR2(50),
    GENDER   NCHAR(2), --여성, 남성
		--CHAR(2 CHAR): 6byte, NCHAR(2): 4 byte
		--공간 절약을 위해 NCHAR 사용
    AGE      NUMBER,
    BIRTHDAY CHAR(10), --2000-01-02
    PHONE    CHAR(13), --010-1234-2345
    REGDATE  DATE
    
);

-- 주석 표시

 

2. Numeric 형식: 정수 또는 소수

3. Date 형식: Date(yyyy-mm-dd), TIMESTAMP(yyyy-mm-dd hh:mm:ss)

4. LOB 형식: Large Object 형식, 그래픽 이미지나 음성, 바이너리 데이터, 사이즈가 큰 텍스트 데이터를 다루는 데이터 타입

 

 

소스 코드

🔗 HJ0216/TIL/OracleSQL