[데이터베이스] char, varchar, varchar2, nvarchar, nvarchar2

Narcoker·2025년 9월 2일
0

데이터베이스

목록 보기
20/21

MySQL

CHAR

  • 고정 길이 문자열
  • 저장: 항상 n바이트, 짧으면 오른쪽에 공백(padding) 추가
  • 길이 단위: 바이트
  • 최대 길이: 255
  • 특징:
    • 검색 속도가 빠름 (고정 길이라 인덱스 효율 높음 - Random Access)
    • 고정 값보다 적은 공간을 사용하는 경우 공간 낭비
  • 예: CHAR(10) → "abc" 저장 시 "abc "

VARCHAR

  • 가변 길이 문자열
  • 저장: 실제 문자열 byte + 길이 정보(1~2바이트)
  • 길이 단위: 바이트 (문자셋 따라 1~4바이트/문자)
  • 최대 길이: 이론상 65535바이트
  • 특징:
    • CHAR보다 공간 효율적
    • 길이 정보 때문에 약간의 오버헤드 발생

NVARCHAR

  • 가변 길이 문자열
  • VARCHAR(10) CHARACTER SET utf8 와 동일하게 동작
  • 길이 단위: 문자 수
  • 최대 길이: 32767 문자 (문자당 2byte) (InnoDB에서 행 크기와 문자셋에 따라 달라짐)
  • 내부적으로 VARCHAR처럼 길이 정보 1~2바이트 추가 사용
  • 특징:
    • 유니코드 저장 가능 (한글, 이모지 등)
    • VARCHAR와 동일하지만 다국어 지원 목적

Oracle

CHAR

  • 고정 길이 문자열
  • 저장: 항상 n바이트 또는 n문자 (BYTE/CHAR 선택 가능)
  • 길이 단위: 기본 BYTE, 옵션으로 CHAR 지정 가능
  • 최대 길이: 2000 BYTE
  • 특징:
    • 고정 길이라 검색 속도 빠름
    • 공간 낭비 가능성 있음

VARCHAR

  • 과거 호환용
  • 현재는 VARCHAR2 사용 권장
  • 특징: VARCHAR2와 거의 동일, 향후 의미 변경 가능

VARCHAR2

  • 가변 길이 문자열
  • 저장: 실제 길이 + 길이 정보(1~2바이트) 1바이트(<=255) or 2바이트(>255)
  • 길이 단위: BYTE 또는 CHAR 선택 가능 (VARCHAR2(n BYTE/CHAR))
  • 최대 길이: 4000 BYTE/CHAR
  • 특징:
    • Oracle에서 가장 많이 쓰이는 문자열 타입
    • 유니코드 저장 가능 (한글 최소 2바이트)

NVARCHAR

NVARCHAR2

  • 유니코드 가변 길이 문자열
  • 길이 단위: 문자 수
  • 최대 길이: 4000 문자
  • 특징:
    • Oracle에서 다국어 저장 시 가장 권장되는 타입
    • 내부적으로 UTF-16 기반, 한 글자 최소 2바이트
    • 성능과 호환성 면에서 NVARCHAR보다 우수
profile
열정, 끈기, 집념의 Frontend Developer

0개의 댓글