http://www.mysqlkorea.co.kr
한글매뉴얼 5.0 , 한글매뉴얼 5.1 , MySQL 5.1 HA , 사용자매뉴얼
한글매뉴얼 5.0  
한글매뉴얼 5.1  
MYSQL 5.1 HA  
사용자매뉴얼  
영문매뉴얼  
최신글
무리뉴, 클롭 앞…
강릉펜션 ?서울 …
무리뉴, 클롭 앞…
시대별 메이크업 …
이성재, 장인어른…
 
한글매뉴얼 5.1 > 매뉴얼존 > 한글매뉴얼 5.1
 

10.10.1. 유니코드 문자 셋

 

MySQL은 두 개의 유니 코드 문자 셋을 가지고 있다. 여러분은 이 문자 셋을 사용해서 약 650개 언어로 된 텍스트를 저장할 수가 있다.

  • ucs2 (UCS-2 유니 코드) 콜레션:
    • ucs2_bin
    • ucs2_czech_ci
    • ucs2_danish_ci
    • ucs2_esperanto_ci
    • ucs2_estonian_ci
    • ucs2_general_ci (디폴트)
    • ucs2_hungarian_ci
    • ucs2_icelandic_ci
    • ucs2_latvian_ci
    • ucs2_lithuanian_ci
    • ucs2_persian_ci
    • ucs2_polish_ci
    • ucs2_roman_ci
    • ucs2_romanian_ci
    • ucs2_slovak_ci
    • ucs2_slovenian_ci
    • ucs2_spanish2_ci
    • ucs2_spanish_ci
    • ucs2_swedish_ci
    • ucs2_turkish_ci
    • ucs2_unicode_ci
  • utf8 (UTF-8 유니 코드) 콜레션:
    • utf8_bin
    • utf8_czech_ci
    • utf8_danish_ci
    • utf8_esperanto_ci
    • utf8_estonian_ci
    • utf8_general_ci (디폴트)
    • utf8_hungarian_ci
    • utf8_icelandic_ci
    • utf8_latvian_ci
    • utf8_lithuanian_ci
    • utf8_persian_ci
    • utf8_polish_ci
    • utf8_roman_ci
    • utf8_romanian_ci
    • utf8_slovak_ci
    • utf8_slovenian_ci
    • utf8_spanish2_ci
    • utf8_spanish_ci
    • utf8_swedish_ci
    • utf8_turkish_ci
    • utf8_unicode_ci

The MySQL implementation of UCS-2에 대해서는 UCS-2가 시작되는 시점에 빅-엔디안 바이트 순서 (big-endian byte order)로 문자를 저장하지만 바이트 오더 마크 (byte order mark (BOM))을 사용하지는 않는다. 다른 데이터베이스 시스템은 리틀-엔딩 바이트 순서 (little-ending byte order) 또는 BOM을 사용할 수도 있지만, 이러한 시스템과 MySQL 간에 데이터를 전송하는 경우에는 UCS-2 값을 변환할 필요가 있다.

 

ucs2_roman_ci utf8_roman_ci 콜레션에서는, I J가 동일하게 비교되고, UV 가 동일하게 비교된다는 점을 알아두자.

 

ucs2_hungarian_ci utf8_hungarian_ci 콜레션은 MySQL 5.1.5에서 추가되었다.

MySQLhttp://www.unicode.org/reports/tr10/에서 설명되어 있는 유니코드 콜레션 알고리즘(UCA)을 사용해서 utf8_unicode_ci 콜레션을 구현한다. 이 콜레션은 버전-4.0.0 UCA 웨이트 키 (weight keys)를 사용하고 있다: http://www.unicode.org/Public/UCA/4.0.0/allkeys-4.0.0.txt. 아래의 섹션은

 

utf8_unicode_ci 사용에 대해서 설명을 하고 있지만, ucs2_unicode_ci에 대해서도 적용할 수가 있다.

현재의 버전까지는, utf8_unicode_ci 콜레션이 UCA (Unicode Collation Algorithm)를 부분적으로만 지원하며, 몇몇 문자들은 아직까지 지원되지 않고 있다. 또한, 결합 마크 (combining marks)는 전체적으로 지원하지 않는다.

utf8_unicode_ci의 가장 중요한 특징은 확장자 (expantion)을 지원한다는 것이다; , 하나의 문자가 여러 문자 조합과 동일하게 비교가 될 때. 예를 들면, 독일어와 몇몇 다른 언어에서는ßss와 동일한 것이다.

utf8_general_ci는 확장자를 지원하지 않는 레가시 콜레션 (legacy collation)이다. 이것은 문자 간에 일대일 비교만을 실행한다. 이것은 utf8_general_ci 콜레션에 대한 비교가 보다 빠르다는 것을 의미하지만, 정확도는 utf8_unicode_ci 보다 다소 떨어진다.

 

예를 들면, 아래의 등식은 utf8_general_ci utf8_unicode_ci에서 모두 적용된다:

 

Ä = A

Ö = O

Ü = U

 

위의 두 콜레션 간의 차이점은 아래의 것이 utf8_general_ci에 대해서도 적용된다는 것이다:

 

ß = s

 

반면에 아래의 것은 utf8_unicode_ci에만 적용된다:

 

ß = ss

 

MySQLutf8_unicode_ci를 사용하는 순서화 (ordering)가 특정 언어에 대해서 올바르게 동작하지 않는 경우에만 utf8 문자 셋에 대한 언어-관련 콜레션을 구현한다. 예를 들면, utf8_unicode_ci는 독일어 및 프랑스어에 대해서는 잘 동작을 하기 때문에, 이 두 언어에 대해서는 특별한 utf8 콜레션을 생성할 필요가 없게 된다. 

상위
10.10.1. 유니코드 문자 셋
MySQL Korea 사이트의 컨텐츠 소유권은 (주)상상이비즈에 있으므로 무단전재를 금합니다.
ⓒ 2010-2011 ssebiz All Rights Reserved.