CHAR와 VARCHAR의 차이
CHAR
고정 길이 문자열 정보
- 기본 길이 1 바이트, 최대 길이 오라클은 2000 바이트, SQL Server는 8000 바이트
- 고정 길이라서 데이터 값의 길이가 설정된 고정 길이보다 작다면 그 차이 만큼 빈 공간으로 채워짐
VARCHAR
가변 길이 문자열 정보 (CHARACTER VARYING)
- 오라클은
VARCHAR2
, SQL Server는VARCHAR
- 최소 길이 1 바이트, 최대 길이 오라클은 4000 바이트, SQL Server는 8000 바이트
- 데이터 값의 길이 만큼 가변으로 적용됨
비교 내용
-
저장 영역
CHAR
유형은 고정 길이이므로 실제 데이터 길이가 작더라도 설정된 크기만큼 필요VARCHAR
유형은 가변 길이이므로 필요한 영역은 실제 데이터 크기만큼만 필요. 그렇기 때문에 길이가 다양하거나 정의된 길이와 실제 데이터 길이가 차이가 있는 경우에 적합 -
문자열 비교 방법
CHAR
유형은 문자열을 비교할 때 공백을 채워서 비교함. 예를 들어CHAR (8)
이고 ‘AA’ 가 저장되어 있다면, ‘AA’ 뒤에 공백 6자리를 붙여 8자리로 비교하게 됨.'AA' = 'AA ' ➞ 'AA ' = 'AA '
'AA'
와'AA '
는 같은 문자로 처리됨VARCHAR
유형은 끝에 공백이 들어가면 다른 문자로 판단'AA' != 'AA '
'AA'
와'AA '
는 다른 문자로 처리됨