MySQL umfasst zwei Unicode-Zeichensätze. Sie können mit diesen beiden Zeichensätzen Text in ca. 650 Sprachen speichern.
Sortierfolgen für ucs2
(UCS-2-Unicode):
ucs2_bin
ucs2_czech_ci
ucs2_danish_ci
ucs2_esperanto_ci
ucs2_estonian_ci
ucs2_general_ci
(Standard)
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
Sortierfolgen für utf8
(UTF-8-Unicode):
utf8_bin
utf8_czech_ci
utf8_danish_ci
utf8_esperanto_ci
utf8_estonian_ci
utf8_general_ci
(Standard)
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
Die Sortierfolgen ucs2_hungarian_ci
und
utf8_hungarian_ci
wurden in MySQL 5.1.5
hinzugefügt.
MySQL implementiert die Sortierfolge
utf8_unicode_ci
entsprechend dem UCA (Unicode
Collation Algorithm, Unicode-Sortierfolgenalgorithmus), der
unter http://www.unicode.org/reports/tr10/
beschrieben ist. Die Sortierfolge verwendet die
UCA-Gewichtungsschlüssel nach Version 4.0.0 (siehe
http://www.unicode.org/Public/UCA/4.0.0/allkeys-4.0.0.txt).
Die folgende Beschreibung verwendet
utf8_unicode_ci
, gilt aber für
ucs2_unicode_ci
gleichermaßen.
Zurzeit bietet die Sortierfolge
utf8_unicode_ci
nur teilweise Unterstützung
für den UCA. Einige Zeichen werden noch nicht unterstützt.
Gleiches gilt für diakritische Zeichen. Dies betrifft in erster
Linie das Vietnamesische und einige Minderheitensprachen in
Russland wie etwa das Udmurtische, das Tatarische, das
Baschkirische und Mari.
Die bedeutsamste Funktion in utf8_unicode_ci
besteht darin, dass Erweiterungen unterstützt werden, d. h.,
wenn ein Zeichen mit einer Kombination anderer Zeichen
gleichgesetzt wird. Beispielsweise wird im Deutschen und einigen
anderen Sprachen ‘ß
’ mit
‘ss
’ gleichgesetzt.
utf8_general_ci
ist eine ältere
Sortierfolge, die Erweiterungen nicht unterstützt. Hier können
nur 1 : 1-Vergleiche zwischen Zeichen durchgeführt werden:
Vergleiche für die
utf8_general_ci
-Sortierfolge sind also
schneller, aber unter Umständen weniger korrekt als Vergleiche
für utf8_unicode_ci
.
Die folgenden Gleichstellungen beispielsweise sind sowohl in
utf8_general_ci
als auch in
utf8_unicode_ci
zutreffend:
Ä = A Ö = O Ü = U
Ein Unterschied zwischen den Sortierfolgen besteht darin, dass
Folgendes für utf8_general_ci
wahr ist:
ß = s
Dagegen ist Folgendes für utf8_unicode_ci
wahr:
ß = ss
MySQL implementiert sprachspezifische Sortierfolgen für den
utf8
-Zeichensatz nur dann, wenn die
Sortierung mit utf8_unicode_ci
bei einer
Sprache nicht gut funktioniert. So arbeitet
utf8_unicode_ci
etwa für das Deutsche oder
das Französische einwandfrei, weswegen für diese beiden
Sprachen keine utf8
-Spezialsortierungen
erforderlich sind.
Auch utf8_general_ci
ist für Deutsch und
Französisch weitgehend angemessen, nur wird hier
‘ß
’ mit
‘s
’ (statt
‘ss
’) gleichgesetzt. Sofern es
für Ihre Anwendung ausreichend sein sollte, sollten Sie
utf8_general_ci
verwenden, weil diese
Sortierfolge schneller ist. Ansonsten benutzen Sie
utf8_unicode_ci
, denn diese Sortierfolge
arbeitet exakter.
utf8_swedish_ci
wurde wie andere
sprachspezifische utf8
-Sortierfolgen auch von
utf8_unicode_ci
abgeleitet und mit
zusätzlichen Sprachregeln ergänzt. Beispielsweise funktioniert
im Schwedischen die folgende Beziehung – etwas, das der
deutsche oder französische Muttersprachler nicht erwarten
würde:
Ü = Y < Ö
Die Sortierfolgen utf8_spanish_ci
und
utf8_spanish2_ci
entsprechen dem modernen
bzw. dem traditionellen Spanisch. Bei beiden Sortierfolgen ist
‘ñ
’ (n mit Tilde) ein separater
Buchstabe zwischen ‘n
’ und
‘o
’. Ferner ist beim
traditionellen Spanisch ‘ch
’ ein
separater Buchstabe zwischen ‘c
’
und d
und ‘ll
’
ein separater Buchstabe zwischen
‘l
’ und
‘m
’.
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.