Ein Zeichensatz ist eine Menge mit Symbolen und Kodierungen. Eine Sortierfolge ist ein Regelsatz für den Vergleich von Zeichen in einem Zeichensatz. Folgendes Beispiel, welches einen imaginären Zeichensatz verwendet, soll den Unterschied verdeutlichen.
Angenommen, wir haben ein Alphabet mit vier Buchstaben:
‘A
’,
‘B
’,
‘a
’,
‘b
’. Jedem Buchstaben weisen wir
nun eine Zahl zu: ‘A
’ = 0,
‘B
’ = 1,
‘a
’ = 2,
‘b
’ = 3. Der Buchstabe
‘A
’ ist ein Symbol, die Zahl 0 die
Kodierung für
‘A
’. Die Kombination aller vier
Buchstaben und ihrer Kodierungen bildet den
Zeichensatz.
Angenommen, wir wollen zwei String-Werte
‘A
’ und
‘B
’ miteinander vergleichen. Die
einfachste Möglichkeit, dies zu tun, besteht in einem Blick auf
die Kodierungen: 0 für ‘A
’ und 1
für ‘B
’. Da 0 kleiner als 1 ist,
sagen wir, dass ‘A
’ kleiner als
‘B
’ ist. Was wir gerade getan
haben, war die Anwendung einer Sortierfolge für unseren
Zeichensatz. Die Sortierfolge ist eine Menge von Regeln – wenn
auch in diesem Fall nur eine Regel: „Vergleiche die
Kodierungen“. Diese einfachste aller möglichen
Sortierfolgen nennen wir Binärsortierung.
Was aber, wenn wir ausdrücken wollen, dass Klein- und
Großbuchstaben äquivalent sind? Dann hätten wir schon zwei
Regeln: (1) Betrachte die Kleinbuchstaben
‘a
’ und
‘b
’ als äquivalent zu den
entsprechenden Großbuchstaben ‘A
’
und ‘B
’. (2) Vergleiche die
Kodierungen. Dies ist eine Sortierfolge ohne
Unterscheidung der Groß-/Kleinschreibung. Sie ist ein
kleines bisschen komplexer als eine Binärsortierung.
Im wirklichen Leben umfassen die meisten Zeichensätze viele
Zeichen: nicht nur ‘A
’ und
‘B
’, sondern ganze Alphabete –
manchmal sogar mehrere Alphabete oder fernöstliche Schreibsysteme
mit Tausenden von Zeichen – sowie viele Sonder- und
Interpunktionszeichen. Auch für Sortierfolgen gibt es im
wirklichen Leben viele Regeln, die nicht nur die Behandlung der
Groß-/Kleinschreibung angeben, sondern auch, ob Akzente und
Tremata (die Punkte etwa auf den deutschen Umlauten Ä, Ö und Ü)
unterschieden und wie Folgen aus mehreren Zeichen zugeordnet
werden (beispielsweise die Regel, dass bei einer der beiden
deutschen Sortierfolgen die Gleichung
‘Ö
’ =
‘OE
’ gilt).
MySQL erlaubt Ihnen
das Speichern von Strings in einer Vielzahl von Zeichensätzen,
das Vergleichen von Strings unter Verwendung einer Vielzahl von Sortierfolgen,
das Mischen von Strings verschiedener Zeichensätze oder Sortierfolgen auf demselben Server, in derselben Datenbank oder sogar derselben Tabelle,
die Angabe von Zeichensatz und Sortierfolge auf beliebiger Ebene.
In dieser Hinsicht ist MySQL den meisten anderen Datenbanksystemen weit überlegen. Allerdings müssen Sie, um diese Funktionen effizient nutzen zu können, wissen, welche Zeichensätze und Sortierfolgen verfügbar sind, wie Sie die Standardeinstellungen ändern und wie diese das Verhalten von String-Operatoren und -Funktionen beeinflussen.
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.