• MySQL매뉴얼
    • MySQL 5.6 매뉴얼
    • MySQL 5.1 매뉴얼
    • MySQL 5.0 매뉴얼
    • MySQL HA 매뉴얼
  • 기술문서
    • Xtrabackup 구성
    • 메모리 사용량 모니터링
  • 서비스
    • MySQL유지보수
    • MySQL라이선스
  • 온라인문의
  • 회사소개
  • → 목 록 (MySQL5.1 한글메뉴얼) [close]
  • 1. MySQL 5.1 Reference Manual
  • 2. Installing and MySQL 업그레이드하기
  • 3. 사용 설명서 (Tutorial)
  • 4. MySQL 프로그램 사용하기
  • 5. 데이터베이스 관리
  • 6. 리플리케이션
  • 7. 최적화 (Optimization)
  • 8. 클라이언트 및 유틸리티 프로그램
  • 9. 언어 구조 (Language Structure)
  • 10. 문자 셋 지원
  • 1. 일반적인 의미의 문자 셋과 콜레션
    2. MySQL의 문자 셋과 콜레션
    3. 문자 셋과 콜레션 지정하기
    4. 문자 셋과 콜레션 연결하기
    5. 콜레션 이슈
    6. 문자 셋 지원으로 영향을 받는 연산
    7. 유니코드 지원
    8. 메타데이터용 UTF-8
    9. 컬럼 문자 셋 변환
    10. MySQL이 지원하는 문자 셋과 콜레션
  • 24. API 및 라이브러리
  • 25. Connectors

10.9. 컬럼 문자 셋 변환

 

특정 문자 셋을 사용하기 위해 바이너리 또는 비-바이너리 스트링을 변환하고자 할 경우에는 ALTER TABLE을 사용한다. 변환을 성공적으로 실행하기 위해서는 다음의 조건이 반드시 적용되어야 한다:

  • 컬럼이 바이너리 데이터 타입 (BINARY, VARBINARY, BLOB)을 가지고 있다면, 모든 데이터 타입 값을 단일 문자 셋으로 인코딩해야 한다. 정보를 여러 가지의 문자 셋에 저장하기 위해 바이너리 컬럼을 사용한다면, MySQL은 어떤 문자 셋을 사용해야 할지를 모르기 때문에 변환이 올바르게 진행되지 않는다.
  • 컬럼이 비-바이너리 데이터 타입 (CHAR, VARCHAR, TEXT)을 가지고 있다면, 이러한 데이터 타입 값은 다른 문자 셋이 아닌 컬럼 자체의 문자 셋으로 인코딩 되어야 한다. 만일 데이터 값이 다른 문자 셋으로 인코딩 된다면, 컬럼을 바이너리 타입으로 우선 변환 시킨 후에, 원하는 문자 셋을 사용해서 비-바이너리 컬럼으로 변경한다.

테이블 t가 BINARY(50)로 정의된 col1라는 이름의 컬럼을 하나 가지고 있다고 가정하자. 컬럼 안에 들어 있는 정보를 단일 문자 셋으로 인코딩 하였다고 가정하면, 여러분은 이것을 인코딩한 문자 셋을 가지고 있는 비-바이너리 컬럼으로 변환할 수가 있다. 예를 들면, col1이 greek 문자를 표시하는 바이너리 데이터를 가지고 있다면, 이것을 다음과 같이 변환할 수가 있다:

 

ALTER TABLE t MODIFY col1 CHAR(50) CHARACTER SET greek;

 

테이블 t가 CHAR(50) CHARACTER SET latin1로 정의된 col1라는 이름의 비-바이너리 컬럼을 가지고 있지만 utf8를 사용해서 다양한 언어 값으로 저장하기 위해 이것을 변환하고자 한다고 가정하면, 아래의 명령문을 사용하도록 한다:

 

ALTER TABLE t MODIFY col1 CHAR(50) CHARACTER SET utf8;

서울시 강남구 영동대로 602 6층  TEL: 02-6061-0006
주식회사 이노클러스터  등록번호 : 727-86-02261
Copyright © innocluster Co. ltd. all rights reserved