Hauptmenü

Untermenü

MySQL - SQL - Grundlagen- Datentypen

1. Vorzeichenbehaftet/vorzeichenlos

Bevor ich euch mit den verschiedenen Datentypen bekannt mache, muss ich euch zuerst auf eine Besonderheit hinweisen. Wenn man einer Spalte einen "Zahlentyp" zuweist, so gibt es zwei Möglichkeiten. Wenn sie vorzeichenbehaftet ist, kann sie auch negative Werte aufnehmen, ansonsten nicht. Im ersten Fall halbiert sich also die höchstmögliche Zahl, die in das entsprechend Feld eingetragen werden kann.

Festlegung

Beim Erstellen einer Tabelle kann man mit der Option UNSIGNED dafür sorgen, dass eine Spalte vom Typ Zahl vorzeichenlos sein soll. Dann wäre also der kleinstmögliche Wert eine 0.

2. Ganzzahlen

Typ vorzeichenbehaftet vorzeichenlos
Minimalwert Maximalwert Minimalwert Maximalwert
TINYINT -128 +127 0 255
SMALLINT -32.768 +32.767 0 65.535
MEDIUMINT -8.388.608 +8.388.607 0 16.777.215
INT/INTEGER -2.147.483.647 +2.147.483.646 0 4.294.967.295
BIGINT (*) -263 +263 - 1 0 264 - 1
(*) Könnt ihr euch selber ausrechnen. Bei solchen Zahlen wird mir immer schummerig. (PS: danke an Kay)

3. Fließkommazahlen

Typ vorzeichenbehaftet vorzeichenlos
Minimalwert Maximalwert Minimalwert Maximalwert
FLOAT -3,402823466×1038 -1,175494351×10-38 1,175494351×10-38 3,402823466×1038
DOUBLE -1,798×10308 -2,225×10-308 2,225×10-308 1,798×10308

Anmerkung

Wer jetzt beim Anblick dieser Werte die Krätze bekommt, den kann ich trösten. Solange man keine astronomischen Berechnungen durchführen will, sind obige Angaben ziemlich uninteressant. Und was mögliche bzw. realistische Einschränkungen angeht, dazu komme ich gleich.

4. Datumsangaben

Leider haben die "Inselaffen" ;-) aus Großbritannien in den letzten zwei Jahrhunderten eine so große Rolle gespielt, dass etliche ihrer ehemaligen Kolonien deren steinzeitliche Einheiten übernommen haben. Darum wird auch das Datumsformat in einer uns unbekannten Schreibweise verwendet. Ein kleiner Trost, ist reine Gewöhnungssache, mal abgesehen von der Konvertierung in ein modernes Format.

Typ Format Beispiel
DATE YYYY-MM-DD 2008-07-10
TIME hh:mm:ss 12:35:17
DATETIME/TIMESTAMP YYYY-MM-DD hh:mm:ss 2008-07-10 12:35:17
YEAR YYYY 1966

5. Zeichenketten

Typ Wertebereich Anmerkung
CHAR 0 - 255 Zeichen feste Länge *
VARCHAR 0 - 255 Zeichen (**) variable Länge
TINYTEXT 0 - 255 feste Länge *
TEXT 0 - 65535 feste Länge *
MEDIUMTEXT 0 - 16.777.215 feste Länge *
LONGTEXT 0 - 4.294.967.295 feste Länge *

* ab MySQL 4.1 auch mit variabler Länge

** ab MySQL 5.0.3 bis 65.535

6. Binärdaten

Typ Wertebereich Anmerkung
TINYBLOB bis 28 Byte feste Länge *
BLOB bis 216 Byte feste Länge *
MEDIUMBLOB bis 224 Byte feste Länge *
LONGBLOB bis 232 Byte feste Länge *

* eigentlich mit variabler Länge, die aber nicht vorgegeben werden kann, sondern vom System automatisch angepasst wird.

zurück zum vorherigen Abschnitt weiter zum nächsten Abschnitt