[sql] 문자열 데이터 타입 (char, varchar, text)

데이터베이스 시스템에서 문자열을 저장하기 위한 여러 가지 데이터 타입이 존재합니다. 가장 일반적으로 사용되는 문자열 데이터 타입에는 char, varchar, text가 있습니다. 이들 데이터 타입 각각은 다른 용도와 제한사항을 가지고 있습니다.

1. char

char 데이터 타입은 고정된 길이의 문자열을 저장하는 데 사용됩니다. 이 데이터 타입은 지정된 길이에 관계없이 항상 고정된 크기의 공간을 차지합니다. 예를 들어, char(10)은 항상 10자리의 문자열을 저장할 수 있습니다. 만약 입력한 문자열이 10자리를 넘어가는 경우에는 잘리게 됩니다. 이에 따라 char 데이터 타입은 저장 공간을 미리 예약하고 문자열의 길이가 항상 일정한 경우에 적합합니다.

CREATE TABLE example (
    id INT,
    name CHAR(10)
);

2. varchar

varchar 데이터 타입은 가변 길이의 문자열을 저장하는 데 사용됩니다. 이 데이터 타입은 입력한 문자열의 실제 길이에 따라 필요한만큼의 공간을 차지합니다. 예를 들어, varchar(50)은 최대 50자리의 문자열을 저장할 수 있습니다. 따라서 입력한 문자열이 실제로 10자리인 경우, char 데이터 타입보다는 varchar 데이터 타입이 더 효율적으로 공간을 사용할 수 있습니다. 하지만 varchar 데이터 타입은 문자열의 길이를 제한하며, 입력 문자열의 총 길이가 지정된 크기를 초과할 수 없습니다.

CREATE TABLE example (
    id INT,
    name VARCHAR(50)
);

3. text

text 데이터 타입은 가변 길이의 긴 문자열을 저장하는 데 사용됩니다. 이 데이터 타입은 varchar와 달리 최대 길이에 제한이 없으며, 필요한 만큼 큰 공간을 차지합니다. 대부분의 데이터베이스 시스템에서는 text 데이터 타입에 대한 인덱싱과 검색을 제공합니다. 따라서 매우 큰 문자열을 저장해야 하거나, 검색 기능을 사용해야 하는 경우에는 text 데이터 타입을 사용하는 것이 유용합니다.

CREATE TABLE example (
    id INT,
    description TEXT
);

결론

char, varchar, text는 문자열 데이터를 저장하기 위한 다양한 데이터 타입입니다. char는 고정 길이의 문자열을, varchar는 가변 길이의 문자열을, text는 임의의 긴 문자열을 저장하는 데 사용됩니다. 데이터의 크기와 효율성에 따라 적절한 데이터 타입을 선택하여 사용해야 합니다.

참고 자료