[Oracle] CHAR, VARCHAR, NVARCHAR 의 차이? VARCHAR에 붙은 2의 의미는? - NVARCHAR2 | VARCHAR2 | Oracle :: 매운코딩
728x90
300x250

Oracle의 문자데이터 타입에는 여러가지 유형이 있다.

Char

Varchar

Varchar2

NVarchar

NVarchar2 ...

각각의 차이점에 대해 알아보자

 

 

 

1. CHAR

고정된 문자 타입

CHAR(30) 으로 설정할 경우 해당컬럼에서 수용할 수 있는 문자 크기는 30byte이다.

알파벳 하나에 1byte인 것을 감안하면 30자를 쓸 수 있다. (한글은 2byte기에 15글자)

모든 행마다 30byte만큼 메모리를 할당해놓기 때문에,

만약에 실제 데이터가 5byte여도 30byte공간을 가지고 있고 나머지는 공백으로 채운다.

메모리 낭비 가능성이 높음

 

 

2. VARCHAR

가변 문자 타입 (ASCII코드)

VARCHAR(30) 으로 설정할경우 CHAR와 동일하게 30byte까지 입력가능하나

만약 실제 데이터가 5byte면 메모리는 5byte에 대해서만 할당한다.

ASCII코드 문자 데이터형이기에 CHAR와 동일하게 ASCII에 있는 문자는 1byte, 그외(한글)은 2byte로 계산한다.

가변적으로 메모리를 할당하기 때문에 공간을 효율적으로 사용할 수 있다.

 

 

3.NVARCHAR

가변 문자 타입 (유니코드)

VARCHAR와 동일하게 가변적으로 메모리를 할당한다.

둘의 차이점은 NVARCHAR는 유니코드를 기반으로 데이터를 계산하기에

영어든 한글이든 모두 2byte로 계산한다.

 

 

**번외

Varchar와 Varchar2의 차이란?

Nvarchar와 Nvarchar2의 차이란?

==> 동일한 것으로 보면 된다. 시노님 개념으로 하는 기능은 동일하다.

 

728x90

+ Recent posts