MySQL5.0では,126種類でMySQL5.1では,127種類のCollationが用意されている。
一つの文字コードに複数のCollationが用意されていて、文字データの場合,文字コードによって,
並びが変化する。

Collationの命名規則は,”文字コード_言語名_比較法”

ci 大文字小文字を区別しない
cs 大文字小文字を区別する
bin バイナリコードで比較する

mysql> show collation;
+———————-+———-+—–+———+———-+———+
| Collation | Charset | Id | Default | Compiled | Sortlen |
+———————-+———-+—–+———+———-+———+
| big5_chinese_ci | big5 | 1 | Yes | Yes | 1 |
| big5_bin | big5 | 84 | | Yes | 1 |
| dec8_swedish_ci | dec8 | 3 | Yes | | 0 |
| dec8_bin | dec8 | 69 | | | 0 |
| cp850_general_ci | cp850 | 4 | Yes | | 0 |
| cp850_bin | cp850 | 80 | | | 0 |
| hp8_english_ci | hp8 | 6 | Yes | | 0 |
| hp8_bin | hp8 | 72 | | | 0 |
| koi8r_general_ci | koi8r | 7 | Yes | | 0 |
| koi8r_bin | koi8r | 74 | | | 0 |
| latin1_german1_ci | latin1 | 5 | | Yes | 1 |
| latin1_swedish_ci | latin1 | 8 | Yes | Yes | 1 |
| latin1_danish_ci | latin1 | 15 | | Yes | 1 |
| latin1_german2_ci | latin1 | 31 | | Yes | 2 |
| latin1_bin | latin1 | 47 | | Yes | 1 |
| latin1_general_ci | latin1 | 48 | | Yes | 1 |
| latin1_general_cs | latin1 | 49 | | Yes | 1 |
| latin1_spanish_ci | latin1 | 94 | | Yes | 1 |
| latin2_czech_cs | latin2 | 2 | | Yes | 4 |
| latin2_general_ci | latin2 | 9 | Yes | Yes | 1 |
| latin2_hungarian_ci | latin2 | 21 | | Yes | 1 |
| latin2_croatian_ci | latin2 | 27 | | Yes | 1 |
| latin2_bin | latin2 | 77 | | Yes | 1 |
| swe7_swedish_ci | swe7 | 10 | Yes | | 0 |
| swe7_bin | swe7 | 82 | | | 0 |
| ascii_general_ci | ascii | 11 | Yes | | 0 |
| ascii_bin | ascii | 65 | | | 0 |
| ujis_japanese_ci | ujis | 12 | Yes | Yes | 1 |
| ujis_bin | ujis | 91 | | Yes | 1 |
| sjis_japanese_ci | sjis | 13 | Yes | Yes | 1 |
| sjis_bin | sjis | 88 | | Yes | 1 |
| hebrew_general_ci | hebrew | 16 | Yes | | 0 |
| hebrew_bin | hebrew | 71 | | | 0 |
| tis620_thai_ci | tis620 | 18 | Yes | Yes | 4 |
| tis620_bin | tis620 | 89 | | Yes | 1 |
| euckr_korean_ci | euckr | 19 | Yes | Yes | 1 |
| euckr_bin | euckr | 85 | | Yes | 1 |
| koi8u_general_ci | koi8u | 22 | Yes | | 0 |
| koi8u_bin | koi8u | 75 | | | 0 |
| gb2312_chinese_ci | gb2312 | 24 | Yes | Yes | 1 |
| gb2312_bin | gb2312 | 86 | | Yes | 1 |
| greek_general_ci | greek | 25 | Yes | | 0 |
| greek_bin | greek | 70 | | | 0 |
| cp1250_general_ci | cp1250 | 26 | Yes | Yes | 1 |
| cp1250_czech_cs | cp1250 | 34 | | Yes | 2 |
| cp1250_croatian_ci | cp1250 | 44 | | Yes | 1 |
| cp1250_bin | cp1250 | 66 | | Yes | 1 |
| cp1250_polish_ci | cp1250 | 99 | | Yes | 1 |
| gbk_chinese_ci | gbk | 28 | Yes | Yes | 1 |
| gbk_bin | gbk | 87 | | Yes | 1 |
| latin5_turkish_ci | latin5 | 30 | Yes | | 0 |
| latin5_bin | latin5 | 78 | | | 0 |
| armscii8_general_ci | armscii8 | 32 | Yes | | 0 |
| armscii8_bin | armscii8 | 64 | | | 0 |
| utf8_general_ci | utf8 | 33 | Yes | Yes | 1 |
| utf8_bin | utf8 | 83 | | Yes | 1 |
| utf8_unicode_ci | utf8 | 192 | | Yes | 8 |
| utf8_icelandic_ci | utf8 | 193 | | Yes | 8 |
| utf8_latvian_ci | utf8 | 194 | | Yes | 8 |
| utf8_romanian_ci | utf8 | 195 | | Yes | 8 |
| utf8_slovenian_ci | utf8 | 196 | | Yes | 8 |
| utf8_polish_ci | utf8 | 197 | | Yes | 8 |
| utf8_estonian_ci | utf8 | 198 | | Yes | 8 |
| utf8_spanish_ci | utf8 | 199 | | Yes | 8 |
| utf8_swedish_ci | utf8 | 200 | | Yes | 8 |
| utf8_turkish_ci | utf8 | 201 | | Yes | 8 |
| utf8_czech_ci | utf8 | 202 | | Yes | 8 |
| utf8_danish_ci | utf8 | 203 | | Yes | 8 |
| utf8_lithuanian_ci | utf8 | 204 | | Yes | 8 |
| utf8_slovak_ci | utf8 | 205 | | Yes | 8 |
| utf8_spanish2_ci | utf8 | 206 | | Yes | 8 |
| utf8_roman_ci | utf8 | 207 | | Yes | 8 |
| utf8_persian_ci | utf8 | 208 | | Yes | 8 |
| utf8_esperanto_ci | utf8 | 209 | | Yes | 8 |
| utf8_hungarian_ci | utf8 | 210 | | Yes | 8 |
| ucs2_general_ci | ucs2 | 35 | Yes | Yes | 1 |
| ucs2_bin | ucs2 | 90 | | Yes | 1 |
| ucs2_unicode_ci | ucs2 | 128 | | Yes | 8 |
| ucs2_icelandic_ci | ucs2 | 129 | | Yes | 8 |
| ucs2_latvian_ci | ucs2 | 130 | | Yes | 8 |
| ucs2_romanian_ci | ucs2 | 131 | | Yes | 8 |
| ucs2_slovenian_ci | ucs2 | 132 | | Yes | 8 |
| ucs2_polish_ci | ucs2 | 133 | | Yes | 8 |
| ucs2_estonian_ci | ucs2 | 134 | | Yes | 8 |
| ucs2_spanish_ci | ucs2 | 135 | | Yes | 8 |
| ucs2_swedish_ci | ucs2 | 136 | | Yes | 8 |
| ucs2_turkish_ci | ucs2 | 137 | | Yes | 8 |
| ucs2_czech_ci | ucs2 | 138 | | Yes | 8 |
| ucs2_danish_ci | ucs2 | 139 | | Yes | 8 |
| ucs2_lithuanian_ci | ucs2 | 140 | | Yes | 8 |
| ucs2_slovak_ci | ucs2 | 141 | | Yes | 8 |
| ucs2_spanish2_ci | ucs2 | 142 | | Yes | 8 |
| ucs2_roman_ci | ucs2 | 143 | | Yes | 8 |
| ucs2_persian_ci | ucs2 | 144 | | Yes | 8 |
| ucs2_esperanto_ci | ucs2 | 145 | | Yes | 8 |
| ucs2_hungarian_ci | ucs2 | 146 | | Yes | 8 |
| cp866_general_ci | cp866 | 36 | Yes | | 0 |
| cp866_bin | cp866 | 68 | | | 0 |
| keybcs2_general_ci | keybcs2 | 37 | Yes | | 0 |
| keybcs2_bin | keybcs2 | 73 | | | 0 |
| macce_general_ci | macce | 38 | Yes | | 0 |
| macce_bin | macce | 43 | | | 0 |
| macroman_general_ci | macroman | 39 | Yes | | 0 |
| macroman_bin | macroman | 53 | | | 0 |
| cp852_general_ci | cp852 | 40 | Yes | | 0 |
| cp852_bin | cp852 | 81 | | | 0 |
| latin7_estonian_cs | latin7 | 20 | | | 0 |
| latin7_general_ci | latin7 | 41 | Yes | | 0 |
| latin7_general_cs | latin7 | 42 | | | 0 |
| latin7_bin | latin7 | 79 | | | 0 |
| cp1251_bulgarian_ci | cp1251 | 14 | | | 0 |
| cp1251_ukrainian_ci | cp1251 | 23 | | | 0 |
| cp1251_bin | cp1251 | 50 | | | 0 |
| cp1251_general_ci | cp1251 | 51 | Yes | | 0 |
| cp1251_general_cs | cp1251 | 52 | | | 0 |
| cp1256_general_ci | cp1256 | 57 | Yes | | 0 |
| cp1256_bin | cp1256 | 67 | | | 0 |
| cp1257_lithuanian_ci | cp1257 | 29 | | | 0 |
| cp1257_bin | cp1257 | 58 | | | 0 |
| cp1257_general_ci | cp1257 | 59 | Yes | | 0 |
| binary | binary | 63 | Yes | Yes | 1 |
| geostd8_general_ci | geostd8 | 92 | Yes | | 0 |
| geostd8_bin | geostd8 | 93 | | | 0 |
| cp932_japanese_ci | cp932 | 95 | Yes | Yes | 1 |
| cp932_bin | cp932 | 96 | | Yes | 1 |
| eucjpms_japanese_ci | eucjpms | 97 | Yes | Yes | 1 |
| eucjpms_bin | eucjpms | 98 | | Yes | 1 |
+———————-+———-+—–+———+———-+———+
127 rows in set (0.00 sec)

mysql>

mysql> show collation like ‘utf%’;
+——————–+———+—–+———+———-+———+
| Collation | Charset | Id | Default | Compiled | Sortlen |
+——————–+———+—–+———+———-+———+
| utf8_general_ci | utf8 | 33 | Yes | Yes | 1 |
| utf8_bin | utf8 | 83 | | Yes | 1 |
| utf8_unicode_ci | utf8 | 192 | | Yes | 8 |
| utf8_icelandic_ci | utf8 | 193 | | Yes | 8 |
| utf8_latvian_ci | utf8 | 194 | | Yes | 8 |
| utf8_romanian_ci | utf8 | 195 | | Yes | 8 |
| utf8_slovenian_ci | utf8 | 196 | | Yes | 8 |
| utf8_polish_ci | utf8 | 197 | | Yes | 8 |
| utf8_estonian_ci | utf8 | 198 | | Yes | 8 |
| utf8_spanish_ci | utf8 | 199 | | Yes | 8 |
| utf8_swedish_ci | utf8 | 200 | | Yes | 8 |
| utf8_turkish_ci | utf8 | 201 | | Yes | 8 |
| utf8_czech_ci | utf8 | 202 | | Yes | 8 |
| utf8_danish_ci | utf8 | 203 | | Yes | 8 |
| utf8_lithuanian_ci | utf8 | 204 | | Yes | 8 |
| utf8_slovak_ci | utf8 | 205 | | Yes | 8 |
| utf8_spanish2_ci | utf8 | 206 | | Yes | 8 |
| utf8_roman_ci | utf8 | 207 | | Yes | 8 |
| utf8_persian_ci | utf8 | 208 | | Yes | 8 |
| utf8_esperanto_ci | utf8 | 209 | | Yes | 8 |
| utf8_hungarian_ci | utf8 | 210 | | Yes | 8 |
+——————–+———+—–+———+———-+———+
21 rows in set (0.01 sec)

mysql>

collations


mysql> desc string_test;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| comment | varchar(10) | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
1 row in set (0.04 sec)

mysql> show table status like 'string_test'\G
*************************** 1. row ***************************
Name: string_test
Engine: MyISAM
Version: 10
Row_format: Dynamic
Rows: 2
Avg_row_length: 20
Data_length: 40
Max_data_length: 281474976710655
Index_length: 1024
Data_free: 0
Auto_increment: NULL
Create_time: 2009-07-12 00:47:35
Update_time: 2009-07-12 00:51:39
Check_time: NULL
Collation: utf8_general_ci
Checksum: NULL
Create_options:
Comment:
1 row in set (0.00 sec)

mysql>

show_table_status_collate


mysql> select * from string_test;
+------------+
| comment |
+------------+
| THIS IS LO |
| THIS IS OK |
+------------+
2 rows in set (0.00 sec)

mysql> select comment,hex(comment),length(comment),char_length(comment) from string_test o rder by comment;
+------------+----------------------+-----------------+----------------------+
| comment | hex(comment) | length(comment) | char_length(comment) |
+------------+----------------------+-----------------+----------------------+
| THIS IS LO | 54484953204953204C4F | 10 | 10 |
| THIS IS OK | 54484953204953204F4B | 10 | 10 |
+------------+----------------------+-----------------+----------------------+
2 rows in set (0.00 sec)

show_table_status_collate21

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Post Navigation