jnk1m
Foliage IT
jnk1m
전체 방문자
오늘
어제
  • 분류 전체보기 (209)
    • Today I Learned (34)
    • Java (47)
    • Database (15)
    • [NHN Academy] (27)
    • Spring (47)
    • HTML + CSS + JavaScript (11)
    • JSP (3)
    • Node.js (10)
    • React Native (2)
    • 기타 (8)
    • 스크랩 (5)

인기 글

최근 글

티스토리

hELLO · Designed By 정상우.
글쓰기 / 관리자
jnk1m
Database

CHAR와 VARCHAR의 차이점

Database

CHAR와 VARCHAR의 차이점

2023. 3. 13. 14:05

char와 varchar는 데이터베이스에서 문자열 데이터를 저장하는 데 사용되는 데이터 타입이다.

둘 다 문자열 데이터를 저장하는 데 사용되지만, 동작 및 성능에 차이가 있다.

 

char는 고정 길이 문자열 데이터를 저장하는 데 사용된다.

예를 들어, char(10)으로 정의된 열은 영문 10개의 문자를 저장할 수 있다.

이 경우, 실제 데이터가 10자보다 적으면 남는 공간은 공백으로 채워진다.

데이터 검색과 같은 일부 작업에서 유리하다는 장점이 있으나 데이터가 실제로 저장된 공간보다 작을 경우, 저장공간의 일부분이 불필요하게 낭비된다.

 

반면, varchar는 가변 길이 문자열 데이터를 저장하는 데 사용된다.

예를 들어, varchar(10)으로 정의된 열은 최대 영문 10자의 문자열을 저장할 수 있다. 이 경우, 실제 데이터 크기에 따라 저장공간의 크기가 결정된다. varchar는 고정 길이 문자열 데이터를 저장하는 char에 비해 저장공간을 더 효율적으로 사용할 수 있다. 그러나 문자열 데이터의 길이가 긴 경우 데이터를 검색하거나 정렬하는 데에는 성능 저하가 발생할 수 있다.

 

예를 들어, "ID"라는 컬럼을 가지는 "Users" 테이블을 생성할 때, "ID" 컬럼을 char 혹은 varchar로 정의할 수 있다.

char를 사용하여 "ID" 컬럼을 정의할 경우:

CREATE TABLE Users (
    ID CHAR(10) PRIMARY KEY,
    Name VARCHAR(50),
    Age INT
);

위 코드에서 "ID" 컬럼을 char(10)로 정의했다. 이는 "ID" 컬럼에 고정 길이 10자를 저장할 수 있다는 것을 의미한다.

"ID"가 "1234567890"인 경우, 저장공간은 10자로 정해진다. 하지만 "ID"가 "1"인 경우에도 10자의 공간이 할당되어 불필요하게 낭비된다.

 

varchar를 사용하여 "ID" 컬럼을 정의할 경우:

CREATE TABLE Users (
    ID VARCHAR(10) PRIMARY KEY,
    Name VARCHAR(50),
    Age INT
);

위 코드에서 "ID" 컬럼을 varchar(10)로 정의했다. 이는 "ID" 컬럼이 최대 10자의 가변 길이 문자열을 저장할 수 있다는 것을 의미하고,  "ID"가 "1234567890"인 경우, 10자의 공간이 할당된다.

하지만 "ID"가 "1"인 경우에는 실제로 저장된 데이터 크기만큼의 공간이 할당되므로, 1자의 공간만 할당된다.

 

따라서, char는 고정 길이 데이터를 저장하는데 적합하고, varchar는 가변 길이 데이터를 저장하는데 적합하다.

선택은 데이터의 특성과 사용하는 데이터베이스의 성능 요구 사항에 따라 달라진다.

 

 

    'Database' 카테고리의 다른 글
    • [MYSQL] ERROR 3780 해결: CHARACTER SET utf8mb3 & utf8mb4 (차이점, 호환성, 데이터 백업, 문자셋 변경 방법)
    • 데이터베이스에서 데이터 무결성의 중요성과 유지 방법
    • [MySQL] mac 터미널에서 서버 접속, 데이터베이스 생성, 선택
    • [DB] 관계형 데이터베이스의 정의와 종류

    티스토리툴바

    단축키

    내 블로그

    내 블로그 - 관리자 홈 전환
    Q
    Q
    새 글 쓰기
    W
    W

    블로그 게시글

    글 수정 (권한 있는 경우)
    E
    E
    댓글 영역으로 이동
    C
    C

    모든 영역

    이 페이지의 URL 복사
    S
    S
    맨 위로 이동
    T
    T
    티스토리 홈 이동
    H
    H
    단축키 안내
    Shift + /
    ⇧ + /

    * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.