MySQL-Datentypen

Oft gesucht, selten gefunden: die gängigen Datentypen für eine (My)SQL-Datenbank. Jetzt kompakt in der Übersicht mit Optionen, Speicherbedarf und Kurzbeschreibung.

Abkürzungen: Legende || Sortierung Datentyp: A-Z | Standard | Z-A

Datentyp Speicherplatz Optionen Beschreibung
YEAR 1 Byte   [(2|4)]   Jahr zwischen 1901 bis 2155 bei (4) und zwischen 1970 bis 2069 bei (2).
VARCHAR L+1 Bytes   (M) [BINARY]   Zeichenkette variabler Länge, Maximum ist M. Wertebereich für M: 0 bis 255.
TINYINT 1 Byte   [(M)] [U] [Z]   Ganzzahlen von 0 bis 255 oder von -128 bis 127.
TIMESTAMP 4 Bytes   -   Zeitstempel. Wertebereich: 1.1.1970 bis 19.01.2038. Das Format variiert in den MySQL-Versionen.
TIME 3 Bytes   -   Zeit zwischen -838:59:59 und 839:59:59. Ausgabe: hh:mm:ss.
TEXT L+2 Bytes   (M)   Wie BLOB. Ignoriert beim Sortieren & Vergleichen Groß- und Kleinschreibung. Weitere Typen: TINYTEXT, MEDIUMTEXT, LONGTEXT. M ist ab Version 4.1 definierbar.
SMALLINT 2 Bytes   [(M)] [U] [Z]   Ganzzahlen von 0 bis 65.535 oder von -32.768 bis 32.767.
SET x Bytes   ('val1', 'val2', ...)   String-Objekt mit verschiedenen Variablen. 64 sind maximal möglich. Speicherbedarf: x ist 1, 2, 3, 4 oder 8.
REAL 8 Bytes   [(M,D)] [U] [Z]   Alias für DOUBLE.
NUMERIC M+x Bytes   [(M,D)] [U] [Z]   Alias für DECIMAL.
MEDIUMINT 3 Bytes   [(M)] [U] [Z]   Ganzzahlen von 0 bis 16.777.215 oder von -8.388.608 bis 8.388.607.
INTEGER 4 Bytes   [(M)] [U] [Z]   Alias für INT.
INT 4 Bytes   [(M)] [U] [Z]   Ganzzahlen von 0 bis ~4,3 Mill. oder von -2.147.483.648 bis 2.147.483.647.
FLOAT 4 Bytes   [(M,D)] [U] [Z]   Fließkommazahl mit Vorzeichen. Wertebereich von -(3,402823466×1038) bis -(1,175494351×10-38), 0 und 1,175494351×10-38 bis 3,402823466×1038.
ENUM 1 oder 2 Bytes   ('val1', 'val2', ...)   Liste von Werten (val1, val2, ...). 65.535 eineindeutige Elemente sind maximal möglich.
DOUBLE 8 Bytes   [(M,D)] [U] [Z]   Fließkommazahl mit Vorzeichen. Wertebereich von -(1,79769×10308) bis -(2.22507×10-308), 0 und 2.22507×10-308 bis 1,79769×10308
DECIMAL M+x Bytes   [(M,D)] [U] [Z]   Fließkommazahl mit Vorzeichen. Speicherbedarf: x=1 wenn D=0, sonst x=2. Ab MySQL 5.1 binär gespeichert, zuvor als String.
DATETIME 8 Bytes   -   Datumsangabe im Format 'YYYY-MM-DD hh:mm:ss'. Wertebereich entspricht DATE.
DATE 3 Bytes   -   Datum im Format 'YYYY-MM-DD'. Wertebereich von 01.01.1000 bis 31.12.9999.
CHAR M Byte(s)   (M) [BINARY]   Zeichenkette fester Länge M. Wertebereich für M: 0 bis 255.
BLOB L+2 Bytes   (M)   Binäres Objekt mit variablen Daten. Weitere Typen: TINYBLOB, MEDIUMBLOB und LONGBLOB. M ist ab Version 4.1 definierbar.
BINARY M Bytes   (M)   Zum Speichern binärer Strings, unabhängig vom Zeichensatz. Wertebereich für M: 0 bis 255. Weiterer Typ: VARBINARY
BIGINT 8 Bytes   [(M)] [U] [Z]   Ganzzahlen von 0 bis 2^64-1 oder von -(2^63) bis (2^63)-1.

Filter:

Legende

^ = Potenzzeichen
[ ] = Optionaler Parameter
BINARY = Attribut für die Sortierung
D = Anzahl der Kommastellen bei einer Dezimalzahl
L = Stringlänge (Berechnung Speicherbedarf)
M = Maximale Anzahl der gezeigten Stellen
Mill. = Milliarden
U = UNSIGNED (Zahl ohne Vorzeichen)
Z = Zerofill

Hinweise

Diese Übersicht versteht sich als Arbeitshilfe beim Anlegen neuer Datenbanktabellen und listet häufig verwendete Datentypen. Sie erhebt keinen Anspruch auf Vollständigkeit. Die Angaben sind mehrfach auf Richtigkeit geprüft.

Die Werte bei DOUBLE sind gerundet und mathematisch betrachtet ungenau. Wer exakte Zahlen braucht, schaut bitte in die Dokumentation.

Zwischen den MySQL-Versionen (3, 4, 5) gibt es große und kleine Unterschiede. Die hier notierten Angaben beziehen sich auf die Version 5.1. Ich bitte dies zu beachten. :)

Quellen

Krause, Jörg
"PHP Grundlagen und Lösungen", München, Wien, 2000, S.332-336

MySQL AB
"MySQL Reference Manual", 2012, › http://dev.mysql.com/doc/

Erstveröffentlichung: 23.09.2003

Werbung
Rostock Bilder


URL: http://www.schmager.de/mysql.php aktualisiert: 01.01.2017
© 1998 - 2017 Jan Schmager
0.0068 s