Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«MySQL: руководство профСссионала». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 48

Автор АлСксСй ΠŸΠ°ΡƒΡ‚ΠΎΠ²

Π­Ρ‚Π° Π³Π»Π°Π²Π° обсуТдаСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚Π΅ΠΌΡ‹


Π§Ρ‚ΠΎ являСтся Π½Π°Π±ΠΎΡ€Π°ΠΌΠΈ символов ΠΈ объСдинСниями?


Заданная ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ систСма с ΠΌΠ½ΠΎΠ³ΠΎΠΈΠΌΠΈ уровнями для назначСния Π½Π°Π±ΠΎΡ€Π° символов.


Бинтаксис для опрСдСлСния Π½Π°Π±ΠΎΡ€ΠΎΠ² символов ΠΈ объСдинСний.


Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с символами.


ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° стандарта Unicode.


Наборы символов ΠΈ объСдинСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ доступны, с примСчаниями.


ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π½Π°Π±ΠΎΡ€Π° символов Π²ΠΎΠ·Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ Π½Π° Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈ Π½Π° связь ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ сСрвСром MySQL. Если Π’Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ связалась с сСрвСром, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΌ Π½Π°Π±ΠΎΡ€ символов, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΎΡ‚ значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π½Π½ΠΎ. НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ utf8 Unicode, Π²Ρ‹Π΄Π°ΠΉΡ‚Π΅ эту ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ послС соСдинСния с сСрвСром:


SET NAMES 'utf8';

10.1. Наборы символов ΠΈ объСдинСния Π²ΠΎΠΎΠ±Ρ‰Π΅

Набор символов прСдставляСт собой мноТСство символов ΠΈ ΠΈΡ… ΠΊΠΎΠ΄ΠΎΠ². ОбъСдинСниС Π·Π°Π΄Π°Π΅Ρ‚ Π½Π°Π±ΠΎΡ€ ΠΏΡ€Π°Π²ΠΈΠ» для сравнСния символов Π² Π½Π°Π±ΠΎΡ€Π΅ символов. Π”Π°Π²Π°ΠΉΡ‚Π΅ сдСлаСм Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ явным с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°.


ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ Π°Π»Ρ„Π°Π²ΠΈΡ‚ с Ρ‡Π΅Ρ‚Ρ‹Ρ€ΡŒΠΌΡ символами: A, B, a, b. ΠœΡ‹ Π΄Π°Π΅ΠΌ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ символу Π½ΠΎΠΌΠ΅Ρ€: A = 0, B = 1, a = 2, b = 3. Π‘ΠΈΠΌΠ²ΠΎΠ» A ΠΈΠΌΠ΅Π΅Ρ‚ Π½ΠΎΠΌΠ΅Ρ€ 0, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ the ΠΊΠΎΠ΄ΠΈΡ€ΡƒΠ΅Ρ‚ символ A, комбинация ΠΈΠ· всСх Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… символов ΠΈ ΠΈΡ… кодирования ΠΊΠ°ΠΊ Ρ€Π°Π· ΠΈ Π΅ΡΡ‚ΡŒ Π½Π°Π±ΠΎΡ€ символов.


ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ Π΄Π²Π° строковых значСния, A ΠΈ B. Π‘Π°ΠΌΡ‹ΠΉ простой способ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅: 0 = A ΠΈ 1 = B. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ 0 мСньшС Ρ‡Π΅ΠΌ 1, ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ, Ρ‡Ρ‚ΠΎ A мСньшС Ρ‡Π΅ΠΌ B. Π§Ρ‚ΠΎ ΠΌΡ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ сдСлали? ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΠ»ΠΈ объСдинСниС ΠΊ Π½Π°ΡˆΠ΅ΠΌΡƒ Π½Π°Π±ΠΎΡ€Ρƒ символов. ОбъСдинСниС Π·Π°Π΄Π°Π΅Ρ‚ Π½Π°Π±ΠΎΡ€ ΠΏΡ€Π°Π²ΠΈΠ» (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π² этом случаС). Π‘Π°ΠΌΡ‹ΠΌ простым ΠΈΠ· всСх Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… объСдинСний являСтся Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ объСдинСниС.


Но Ρ‡Ρ‚ΠΎ, Ссли ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½ΠΈΠΆΠ½ΠΈΠΉ рСгистр ΠΈ прописныС Π±ΡƒΠΊΠ²Ρ‹ эквивалСнтны? ΠœΡ‹ ΠΈΠΌΠ΅Π»ΠΈ Π±Ρ‹ ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ Π΄Π²Π° ΠΏΡ€Π°Π²ΠΈΠ»Π°: (1) ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ символы Π½ΠΈΠΆΠ½Π΅Π³ΠΎ рСгистра a ΠΈ b ΠΊΠ°ΠΊ эквивалСнт A ΠΈ B, (2) Π·Π°Ρ‚Π΅ΠΌ сравниваСт ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. ΠœΡ‹ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌ это объСдинСниСм Π±Π΅Π· ΡƒΡ‡Π΅Ρ‚Π° рСгистра. Π­Ρ‚ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»Π΅Π΅ слоТно, Ρ‡Π΅ΠΌ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ объСдинСниС.


Π’ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π½Π°Π±ΠΎΡ€ΠΎΠ² символов ΠΈΠΌΠ΅Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ символов: Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ A ΠΈ B, Π° Ρ†Π΅Π»Ρ‹Π΅ Π°Π»Ρ„Π°Π²ΠΈΡ‚Ρ‹, ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠ½ΠΎΠ³ΠΎ Π°Π»Ρ„Π°Π²ΠΈΡ‚ΠΎΠ² ΠΈΠ»ΠΈ восточныС систСмы записи с тысячами символов, наряду с ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ символами ΠΈ Π·Π½Π°ΠΊΠ°ΠΌΠΈ прСпинания. Π’Π°ΠΊΠΆΠ΅ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ объСдинСний ΠΈΠΌΠ΅Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€Π°Π²ΠΈΠ», Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚ΡŒ рСгистр символов, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚ΡŒ диакритичСскиС Π·Π½Π°ΠΊΠΈ. А Ρ‚Π°ΠΊΠΆΠ΅ для ΠΌΠ½ΠΎΠ³ΠΎΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ (Ρ‚ΠΈΠΏΠ° ΠΏΡ€Π°Π²ΠΈΠ» Π² Π½Π΅ΠΌΠ΅Ρ†ΠΊΠΎΠΌ языкС).


MySQL ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π΅Π»Π°Ρ‚ΡŒ эти Π΄Π΅Π»Π° для Вас:


Π₯Ρ€Π°Π½ΠΈΡ‚ΡŒ строки, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ ряд Π½Π°Π±ΠΎΡ€ΠΎΠ² символов.


Π‘Ρ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ строки, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ ряд объСдинСний.


Π‘ΠΌΠ΅ΡˆΠΈΠ²Π°Ρ‚ΡŒ строки с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Π½Π°Π±ΠΎΡ€Π°ΠΌΠΈ символов ΠΈΠ»ΠΈ объСдинСниями Π² Ρ‚ΠΎΠΉ ΠΆΠ΅ самой Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Ρ‚ΠΎΠΉ ΠΆΠ΅ самой Ρ‚Π°Π±Π»ΠΈΡ†Π΅.


ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ Π½Π°Π±ΠΎΡ€Π° символов ΠΈ объСдинСния Π² любом ΡƒΡ€ΠΎΠ²Π½Π΅.


Π’ этих ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡΡ… MySQL Π΄Π°Π»Π΅ΠΊ ΠΎΡ‚ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… систСм управлСния Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Однако, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эти свойства, Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ Π½Π°Π±ΠΎΡ€Ρ‹ символов ΠΈ объСдинСния ΡΠ²Π»ΡΡŽΡ‚ΡΡ доступными, ΠΊΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π²ΠΎΠ·Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ Π½Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ строковых ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

10.2. Наборы символов ΠΈ объСдинСния Π² MySQL

Π‘Π΅Ρ€Π²Π΅Ρ€ MySQL ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€ΠΎΠ² символов. Π§Ρ‚ΠΎΠ±Ρ‹ Π²Π½ΠΎΡΠΈΡ‚ΡŒ Π² список доступныС Π½Π°Π±ΠΎΡ€Ρ‹ символов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ SHOW CHARACTER SET. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ кусок Π²Ρ‹Π²ΠΎΠ΄Π° этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:


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, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ эту ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ Ρ‚Π΅ ΠΈΠΌΠ΅Π½Π° объСдинСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с 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

German DIN-1


latin1_swedish_ci

Swedish/Finnish


latin1_danish_ci

Danish/Norwegian


latin1_german2_ci

German DIN-2


latin1_bin

Binary according to latin1 encoding


latin1_general_ci

Multilingual (Western European)


latin1_general_cs

Multilingual (ISO Western European), case sensitive


latin1_spanish_ci

Modern Spanish

ОбъСдинСния ΠΈΠΌΠ΅ΡŽΡ‚ эти ΠΎΠ±Ρ‰ΠΈΠ΅ характСристики:


Π”Π²Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π½Π°Π±ΠΎΡ€Π° символов Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚ΠΎ ΠΆΠ΅ самоС объСдинСниС.


ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ символов ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ΄Π½ΠΎ объСдинСниС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ являСтся Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ объСдинСниСм. НапримСр, Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ объСдинСниС для latin1: latin1_swedish_ci. Π’Ρ‹Π²ΠΎΠ΄ SHOW CHARACTER SET ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ объСдинСниС являСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° символов.


Π˜ΠΌΠ΅Π΅Ρ‚ΡΡ соглашСниС для ΠΈΠΌΠ΅Π½ объСдинСния: ΠΎΠ½ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с ΠΈΠΌΠ΅Π½ΠΈ Π½Π°Π±ΠΎΡ€Π° символов, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΎΠ½ΠΈ связаны, ΠΎΠ½ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ имя языка, ΠΈ ΠΎΠ½ΠΈ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π½Π° _ci (case insensitive), _cs (case sensitive) ΠΈΠ»ΠΈ Π½Π° _bin (binary).

10.3. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π°Π±ΠΎΡ€ΠΎΠ² символов ΠΈ объСдинСний

Π˜ΠΌΠ΅ΡŽΡ‚ΡΡ установки ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для Π½Π°Π±ΠΎΡ€ΠΎΠ² символов ΠΈ объСдинСний Π² Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… уровнях: сСрвСр, Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΈ столбСц. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ описаниС ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ слоТным, Π½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ практичСски, Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π²Π΅Π΄Π΅Ρ‚ ΠΊ СстСствСнным ΠΈ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌ.


CHARACTER SET ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² прСдлоТСниях, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ Π½Π°Π±ΠΎΡ€ символов. CHARSET ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ синоним для CHARACTER SET.

10.3.1. Набор символов ΠΈ объСдинСниС Π½Π° сторонС сСрвСра

Π‘Π΅Ρ€Π²Π΅Ρ€ MySQL ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π°Π±ΠΎΡ€ символов ΠΈ объСдинСниС сСрвСра. Они ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ установлСны ΠΏΡ€ΠΈ запускС ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹ Π²ΠΎ врСмя выполнСния.


ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ, Π½Π°Π±ΠΎΡ€ символов ΠΈ объСдинСниС зависят ΠΎΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π’Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅, ΠΊΠΎΠ³Π΄Π° запускаСтС mysqld . Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ --character-set-server для Π½Π°Π±ΠΎΡ€Π° символов. Наряду с этим, Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ --collation-server для объСдинСния. Если Π’Ρ‹ Π½Π΅ опрСдСляСтС Π½Π°Π±ΠΎΡ€ символов, считаСтся, Ρ‡Ρ‚ΠΎ Π·Π°Π΄Π°Π½ΠΎ --character-set-server=latin1. Если Π’Ρ‹ опрСдСляСтС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Π±ΠΎΡ€ символов (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, latin1), Π½ΠΎ Π½Π΅ Π·Π°Π΄Π°Π΅Ρ‚Π΅ объСдинСниС, считаСтся, Ρ‡Ρ‚ΠΎ Π·Π°Π΄Π°Π½ΠΎ --character-set-server=latin1 --collation-server=latin1_swedish_ci, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ latin1_swedish_ci Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ объСдинСниС для latin1. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ‚Ρ€ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ всС ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚ΠΎΡ‚ ΠΆΠ΅ самый эффСкт:


shell> mysqld

shell> mysqld --character-set-server=latin1

shell> mysqld --character-set-server=latin1 \

– -collation-server=latin1_swedish_ci


Один способ измСнят ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ настройки: пСрСкомпиляция. Если Π’Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π½Π°Π±ΠΎΡ€ символов сСрвСра ΠΈ объСдинСниС ΠΏΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈΠ· исходных тСкстов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅: --with-charset ΠΈ --with-collation Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² для configure. НапримСр:


shell> ./configure --with-charset=latin1


Или:

shell> ./configure --with-charset=latin1 \

– -with-collation=latin1_german1_ci


mysqld ΠΈ скрипт configure ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚, Ρ‡Ρ‚ΠΎ комбинация объСдинСний ΠΈ Π½Π°Π±ΠΎΡ€ΠΎΠ² символов допустима. Если это Π½Π΅ Ρ‚Π°ΠΊ, каТдая ΠΈΠ· упомянутых ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ сообщСниС ΠΎΠ± ошибкС ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ.


Π’Π΅ΠΊΡƒΡ‰ΠΈΠΉ Π½Π°Π±ΠΎΡ€ символов ΠΈ объСдинСниС сСрвСра ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ ΠΈΠ· Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… систСмы character_set_server ΠΈ collation_server. Π­Ρ‚ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹ Π²ΠΎ врСмя выполнСния.