10.1.2 MySQL에서의 문자 셋과 콜레션
MySQL Server는 여러 문자 집합을 지원하고 있습니다. 사용 가능한 문자 세트를 나열하려면 SHOW CHARACTER SET
문을 사용합니다. 목록의 일부는 다음과 같습니다. 전체 내용은 섹션 10.1.14 "MySQL에서 지원되는 문자 셋과 콜레 션" 을 참조하십시오.
mysql> SHOW CHARACTER SET;
+----------+-----------------------------+---------------------+--------+
| Charset | Description | Default collation | Maxlen |
+----------+-----------------------------+---------------------+--------+
| big5 | Big5 Traditional Chinese | big5_chinese_ci | 2 |
| dec8 | DEC West European | dec8_swedish_ci | 1 |
| cp850 | DOS West European | cp850_general_ci | 1 |
| hp8 | HP West European | hp8_english_ci | 1 |
| koi8r | KOI8-R Relcom Russian | koi8r_general_ci | 1 |
| latin1 | cp1252 West European | latin1_swedish_ci | 1 |
| latin2 | ISO 8859-2 Central European | latin2_general_ci | 1 |
| swe7 | 7bit Swedish | swe7_swedish_ci | 1 |
| ascii | US ASCII | ascii_general_ci | 1 |
| ujis | EUC-JP Japanese | ujis_japanese_ci | 3 |
| sjis | Shift-JIS Japanese | sjis_japanese_ci | 2 |
| hebrew | ISO 8859-8 Hebrew | hebrew_general_ci | 1 |
| tis620 | TIS620 Thai | tis620_thai_ci | 1 |
| euckr | EUC-KR Korean | euckr_korean_ci | 2 |
| koi8u | KOI8-U Ukrainian | koi8u_general_ci | 1 |
| gb2312 | GB2312 Simplified Chinese | gb2312_chinese_ci | 2 |
| greek | ISO 8859-7 Greek | greek_general_ci | 1 |
| cp1250 | Windows Central European | cp1250_general_ci | 1 |
| gbk | GBK Simplified Chinese | gbk_chinese_ci | 2 |
| latin5 | ISO 8859-9 Turkish | latin5_turkish_ci | 1 |
...
어떤 문자 세트도 항상 적어도 하나의 데이터 정렬을 지원합니다. 여러 데이터 정렬을 지원하기도합니다. 문자 집합의 데이터 정렬을 나열하려면 SHOW COLLATION
명령문을 사용합니다. 예를 들어, latin1
(cp1252 서유럽) 문자 집합의 정렬 순서를 표시하려면이 문을 사용하여 이름이 latin1
로 시작하는 데이터 정렬을 찾습니다.
mysql> SHOW COLLATION LIKE 'latin1%';
+---------------------+---------+----+---------+----------+---------+
| Collation | Charset | Id | Default | Compiled | Sortlen |
+---------------------+---------+----+---------+----------+---------+
| latin1_german1_ci | latin1 | 5 | | | 0 |
| latin1_swedish_ci | latin1 | 8 | Yes | Yes | 1 |
| latin1_danish_ci | latin1 | 15 | | | 0 |
| latin1_german2_ci | latin1 | 31 | | Yes | 2 |
| latin1_bin | latin1 | 47 | | Yes | 1 |
| latin1_general_ci | latin1 | 48 | | | 0 |
| latin1_general_cs | latin1 | 49 | | | 0 |
| latin1_spanish_ci | latin1 | 94 | | | 0 |
+---------------------+---------+----+---------+----------+---------+
latin1
데이터 정렬의 의미는 다음과 같습니다.
데이터 정렬 | 의미 |
---|---|
latin1_german1_ci | 독일의 DIN-1 |
latin1_swedish_ci | 스웨덴어 / 핀란드어 |
latin1_danish_ci | 덴마크어 / 노르웨이어 |
latin1_german2_ci | 독일의 DIN-2 |
latin1_bin | latin1 인코딩을 기반 바이너리 |
latin1_general_ci | 다국어 (서유럽) |
latin1_general_cs | 다국어 (ISO 서유럽 어), 대문자와 소문자를 구별 |
latin1_spanish_ci | 현대 스페인어 |
데이터 정렬에는 다음과 같은 일반적인 특징이 있습니다.
두 개의 서로 다른 문자 집합으로 동일한 데이터 정렬을 공유 할 수 없습니다.
각 문자는 기본 데이터 정렬이 1 개 존재합니다. 예를 들어,
latin1
의 디폴트 조합 순서는latin1_swedish_ci
입니다.SHOW CHARACTER SET
의 출력에 표시되는 각 문자 집합의 기본 데이터 정렬이 표시됩니다.데이터 정렬 이름에 대한 문자 집합의 이름으로 시작 일반적으로 언어 이름을 포함
_ci
(대소 문자를 구별하지 않는다),_cs
(대소 문자 구분)_bin
(이진) 중 하나 끝나는라는 규칙이 적용됩니다.
문자 집합에 여러 데이터 정렬이 있으면 어떤 데이터 정렬이 소정의 애플리케이션에 가장 적합한 지 명확하지 않을 수 있습니다. 잘못된 데이터 정렬을 선택하지 않도록하려면 대표적인 데이터 값을 비교하고, 특정 데이터 정렬에서 예상대로 값이 정렬되는 것을 확인하는 것이 좋습니다.
Collation-Charts.Org 는있는 데이터 정렬과 다른 데이터 정렬과 비교를 나타내는 유용한 정보 사이트입니다.