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