CHAR() : 고정 길이 문자열 정보 속성값으로 받는다.
최소 길이 1byte, 최대 길이 Oracle 2,000 byte, SQL server 8,000 byte
각 공간이 할당되면 변수의 길이가 공간보다 작을 경우 그 차이 길이만큼 공간으로 채워진다!
VARCHAR(): 가변 길이 문자열 정보 속성값으로 가진다.
최소 길이 1byte, 최대 길이 Oracle 4,000 byte, SQL server 8,000 byte
공간이 할당되지만 변수의 길이만큼 가변적으로 메모리에 공간을 할당하기 때문에 속성값의 바이트만 적용된다!!
NUMERIC
DATETIME
CHAR의 주요 장점은 데이터가 항상 일정한 크기를 갖기 때문에 데이터를 저장하고 검색하는 데에 효율적입니다. 그러므로 고정된 길이만 사용하는 자료형은 CHAR로 저장하는 것이 효과적!
VARCHAR의 주요 장점은 저장 공간을 절약할 수 있다는 것이다. 그러나 CHAR보다는 데이터를 검색하는 데에 더 많은 시간이 소요되므로 성능과 속도를 고려했을 때는 CHAR 자료형이 낫다고 할 수 있다.
CHAR 유형 (CHAR(10)일 경우)
'ABC' = 'ABC '
VARCHAR 유형 ((VARCHAR(10)일 경우)
'ABC' != 'ABC '
CHAR 자료형의 경우에는 ‘ABC’
와 ‘ABC ‘
가 고정 길이열이기에 같은 자료로 인식하지만 VARCHAR 자료형의 경우에는 공백 문자까지 자료형의 길이로 인식하기에 두 자료는 다른 자료라고 인식한다.
(단 공백에 대한 처리가 SQL 버전마다 다른 경우도 있음. 예시) MySQL 5.0.3 이하 버전의 경우에는 뒤따르는 공백은 제거 처리하였고 유지를 위해서는 BLOB or TEXT 형 자료를 선택해야했다고 한다..)
8/2(수) 추가 - VARCHAR 와 VARCHAR2 는 문법적으로 완전히 동일하다고 한다.
정리가 잘 된 글이네요. 도움이 됐습니다.