문자를 다루는 두 데이터형인 char와 varchar 의 차이점을 살펴보면

 

char 은 고정적이고

varchar 는 가변적이다.

 

예를 들어 데이터 형을 char(20) , varchar(20) 이라 각각 정의해 두고 "abc"라는 값을 대입한다면

char는 20이라는 길이만큼을 이미 확보하고 그 안에 abc라는 값을 넣기 때문에 20 모두 사용하지만

varchar는 할당된 20을 다 사용하지 않고, abc라는 길이 만큼만을 사용을 한다. (정확히는 'abc'의 길이를 기록하는 1바이트 추가)

 

그렇다고 무조건 varchar형이 좋은 것은 아니다.

 

만약 varchar에 "abc"라 입력되어 있는데, 이를 "abcdef"라고 수정한다면,

현재 공간에 기록 할 수 없기 때문에 다른 곳으로 공간으로 이동하여 기록하게 된다.

 

그러나 char같은 경우 "abc"의 입력값을 "abcdef"라고 수정한다면

이미 할당된 공간안에서 "abcdef"의 길이 만큼만 다시 채워 넣기 때문에

varchar형보다 처리 속도면에서 이점을 가진다.

 

이처럼 문자형 데이터를 다룰 때에 무조건 varchar를 사용하기 보다는

고정된 길이를 가지는 데이터 형의 경우에는 char형으로 써 주는 것이 더 좋다.