Es folgt eine Übersicht über die String-Datentypen. Weitere Informationen finden Sie unter Abschnitt 11.4, „String-Typen“. Die Speicheranforderungen für die Typen sind in Abschnitt 11.5, „Speicherbedarf von Spaltentypen“, beschrieben.
Seit MySQL 4.1 weisen die String-Typen eine Reihe von Funktionen auf, die Sie, wenn Sie bislang nur mit älteren MySQL-Versionen (vor 4.1) gearbeitet haben, unter Umständen nicht kennen:
            Spaltendefinitionen für viele String-Datentypen können ein
            Attribut CHARACTER SET enthalten, mit dem
            der Zeichensatz angegeben wird. (CHARSET
            ist ein Synonym für CHARACTER SET.) Das
            Attribut COLLATE gibt die Sortierung für
            den Zeichensatz an. Diese Attribute gelten für
            CHAR, VARCHAR, die
            TEXT-Typen, ENUM und
            SET. Zum Beispiel:
          
CREATE TABLE t
(
    c1 VARCHAR(20) CHARACTER SET utf8,
    c2 TEXT CHARACTER SET latin1 COLLATE latin1_general_cs
);
            Diese Tabellendefinition erstellt zwei Spalten namens
            c1 und c2. Für die
            erste Spalte sind der Zeichensatz utf8
            und die Standardsortierung für diesen Zeichensatz
            festgelegt, für die zweite latin1 und
            eine Sortierung mit Unterscheidung der
            Groß-/Kleinschreibung.
          
MySQL 5.1 interpretiert Längenangaben in Zeichenspaltendefinitionen als Anzahl von Zeichen. (Früher wurde als Grundlage die Einheit Byte verwendet.)
            Bei CHAR, VARCHAR und
            den TEXT-Typen wird, wenn das Attribut
            BINARY angegeben ist, der Spalte die
            binäre Sortierung des spaltenspezifischen Zeichensatzes
            zugewiesen. (In älteren Versionen konnte eine Spalte bei
            Angabe von BINARY binäre Strings
            speichern.)
          
            Sortierung und Vergleiche basieren bei Zeichenspalten auf
            dem Zeichensatz, der der Spalte zugewiesen ist. (Früher
            basierten Sortierung und Vergleich auf der Sortierung des
            Serverzeichensatzes.) Bei CHAR-und
            VARCHAR-Spalten können Sie eine binäre
            Sortierung oder aber das Attribut BINARY
            angeben, damit für Sortierung und Vergleiche statt der
            lexikalen Reihenfolge die zugrunde liegenden
            Zeichencodewerte benutzt werden.
          
Kapitel 10, Zeichensatz-Unterstützung, enthält weitere Informationen zur Verwendung von Zeichensätzen in MySQL.
            
            
            
            
            
            
            
            
            [NATIONAL] CHAR(
          M)
            [BINARY | ASCII | UNICODE]
            Ein String fester Länge, der bei der Speicherung mit
            Leerzeichen auf die angegebene Länge aufgefüllt wird.
            M steht für die Spaltenlänge.
            M liegt in einem Bereich zwischen
            0 und 255 Zeichen.
          
            Hinweis: Am Ende stehende
            Leerzeichen werden beim Abrufen von
            CHAR-Werten entfernt.
          
            Wenn Sie versuchen, die Länge einer
            CHAR-Spalte auf einen Wert größer 255
            zu setzen, dann schlägt die CREATE
            TABLE- oder ALTER
            TABLE-Anweisung, mit der Sie dies tun, fehl und
            gibt eine Fehlermeldung aus:
          
mysql>CREATE TABLE c1 (col1 INT, col2 CHAR(500));ERROR 1074 (42000): Column length too big for column 'col' (max = 255); use BLOB or TEXT instead mysql>SHOW CREATE TABLE c1;ERROR 1146 (42S02): Table 'test.c1' doesn't exist
            CHAR ist eine Abkürzung für
            CHARACTER. NATIONAL
            CHAR (und die äquivalente Kurzform
            NCHAR) ist bei SQL die Standardmethode,
            um festzulegen, dass eine CHAR-Spalte
            einen bestimmten vordefinierten Zeichensatz verwendet. Seit
            Version 4.1 ist utf8 bei MySQL dieser
            vordefinierte Zeichensatz. Siehe
            Abschnitt 10.3.6, „Nationaler Zeichensatz“.
          
            Das Attribut BINARY ist eine Kurzform zur
            Festlegung der binären Sortierung des Spaltenzeichensatzes.
            In diesem Fall basieren Sortierung und Vergleich auf
            numerischen Zeichenwerten.
          
            Das Attribut ASCII ist eine Abkürzung
            für CHARACTER SET latin1.
          
            Das Attribut UNICODE ist eine Abkürzung
            für CHARACTER SET ucs2.
          
            Der Datentyp CHAR BYTE ist ein Alias für
            den Typ BINARY. Grund hierfür sind
            Kompatibilitätsaspekte.
          
            MySQL gestattet Ihnen die Erstellung einer Spalte des Typs
            CHAR(0). Dies ist in erster Linie
            praktisch, wenn eine Kompatibilität mit alten Anwendungen
            erforderlich ist, die auf das Vorhandensein einer Spalte
            angewiesen sind, aber deren Wert überhaupt nicht nutzen.
            CHAR(0) ist ferner recht praktisch, wenn
            Sie eine Spalte benötigen, die nur zwei Werte annehmen
            kann: Eine CHAR(0)-Spalte, die nicht als
            NOT NULL definiert ist, besetzt genau ein
            Bit und kann nur die Werte NULL und
            '' (Leer-String) aufnehmen.
          
            CHAR
          
            Dieser Typ ist synonym zu CHAR(1).
          
            
            
            
            
            
            
            
            
            [NATIONAL] VARCHAR(
          M)
            [BINARY]
            Ein String variabler Länge. M
            gibt die maximale Spaltenlänge an. Für
            M liegt der zulässige Bereich
            zwischen 0 und 65.535. (Die tatsächliche Maximallänge
            einer VARCHAR-Spalte wird durch die
            maximale Datensatzlänge und den von Ihnen verwendeten
            Zeichensatz bestimmt. Die effektive
            Maximallänge beträgt 65.532 Byte.)
          
            Hinweis: MySQL
            5.1 beachtet die Spezifikation des
            SQL-Standards und entfernt am Anfang stehende Leerzeichen
            aus VARCHAR-Werten
            nicht.
          
            VARCHAR ist eine Abkürzung für
            CHARACTER VARYING.
          
            Das Attribut BINARY ist eine Kurzform zur
            Festlegung der binären Sortierung des Spaltenzeichensatzes.
            In diesem Fall basieren Sortierung und Vergleich auf
            numerischen Zeichenwerten.
          
            VARCHAR wird mit einem Präfix von 1 oder
            2 Byte Länge und den Daten gespeichert. 2 Byte beträgt die
            Länge des Präfixes, wenn die
            VARCHAR-Spalte mit einer Länge größer
            255 deklariert wurde.
          
            Der Typ BINARY ähnelt
            CHAR, speichert aber Strings aus binären
            Bytes statt nichtbinärer Zeichen-Strings.
          
            Der Typ VARBINARY ähnelt
            VARCHAR, speichert aber Strings aus
            binären Bytes statt nichtbinärer Zeichen-Strings.
          
            Eine BLOB-Spalte mit einer Maximallänge
            von 255 (28 – 1) Byte.
          
            Eine TEXT-Spalte mit einer Maximallänge
            von 255 (28 – 1) Zeichen.
          
            Eine BLOB-Spalte mit einer Maximallänge
            von 65.535 (216 – 1) Byte.
          
            Für diesen Typ kann optional die Länge
            M angegeben werden. In diesem
            Fall erstellt MySQL die Spalte mit dem kleinsten
            BLOB-Typ, der groß genug zur Aufnahme
            von Werten mit einer Länge von M
            Bytes ist.
          
            Eine TEXT-Spalte mit einer Maximallänge
            von 65.535 (216 – 1)
            Zeichen.
          
            Für diesen Typ kann optional die Länge
            M angegeben werden. In diesem
            Fall erstellt MySQL die Spalte mit dem kleinsten
            TEXT-Typ, der groß genug zur Aufnahme
            von Werten mit einer Länge von M
            Zeichen ist.
          
            Eine BLOB-Spalte mit einer Maximallänge
            von 16.777.215 (224 – 1)
            Byte.
          
            Eine TEXT-Spalte mit einer Maximallänge
            von 16.777.215 (224 – 1)
            Zeichen.
          
            Eine BLOB-Spalte mit einer Maximallänge
            von 4.294.967.295 (232 – 1)
            Byte (4 Gbyte). Die maximale effektive
            (d. h. zulässige) Länge von
            LONGBLOB-Spalten hängt von der maximalen
            Paketgröße im Client/Server-Protokoll und dem verfügbaren
            Speicher ab.
          
            Eine TEXT-Spalte mit einer Maximallänge
            von 4.294.967.295 (232 – 1)
            Zeichen. Die maximale effektive (d. h.
            zulässige) Länge von LONGTEXT-Spalten
            hängt von der maximalen Paketgröße im
            Client/Server-Protokoll und dem verfügbaren Speicher ab.
          
            Eine Auflistung. Es handelt sich dabei um ein String-Objekt,
            das aus der Liste der Werte
            ',
            value1'',
            value2'..., NULL und einem
            speziellen Fehlerwert '' genau einen Wert
            auswählt. Eine ENUM-Spalte kann maximal
            65.535 verschiedene Werte aufweisen.
            ENUM-Werte werden intern als Integers
            dargestellt.
          
            Eine Menge. Es handelt sich um ein String-Objekt, dass null
            oder mehr Werte haben kann, die jeweils aus der Werteliste
            ',
            value1'',
            value2'... stammen. Eine
            SET-Spalte kann maximal 64 Mitglieder
            haben. SET-Werte werden intern als
            Integers dargestellt.
          
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.

