MySQL - Grundlagen - Datentypen
1. Festlegen der Inhalte
Jedes Feld (vulgo Spalte) in einer Tabelle muss über einen eindeutigen Datentyp verfügen. Das hat zwei Gründe. Erstens geht es um den Speicherbedarf. Der ist nämlich je nach Typ mal größer oder kleiner und wirkt sich somit auch auf die Verarbeitungsgeschwindigkeit aus. Und zweitens kann man bei bestimmten Datentypen schon direkt gezielte Abfragen vornehmen, die bei anderen nicht möglich sind. Ein klassisches Beispiel dafür wäre die Abfrage nach einem Zeitraum von bis mit einer Berechnung. Also zum Beispiel mit folgendem Pseudocode(!).
SUCHE SUMME (preis) VON amazoneinkauf
WO datum ZWISCHEN 11.07.2008 UND 30.09.2008
Damit das nun funktioniert, muss das Feld (die Spalte) preis
als Zahl festgelegt werden. Und datum
natürlich
als ein solchiges, also date
.
2. Grundsätzliche Datentypen
Da ich denke, dass eine komplette Auflistung euch zu diesem Zeitpunkt eher verwirren wird, gehe ich erst mal nur auf die prinzipiellen Möglichkeiten ein, die uns MySQL bietet. Das wären Folgende:
-
Zahlen
- Ganzzahlen mit unterschiedlichem Wertebereich
- Fließkommazahlen mit unterschiedlichem Wertebereich und Genauigkeit
-
Zeichenketten
- "Kurztexte" mit unterschiedlicher Länge
- "Langtexte" mit unterschiedlicher Länge
- Datums- und Zeitangaben
- Binärdaten
3. Obacht!
Wenn ihr Daten in eine Tabelle schreiben wollt, die nicht dem Datentyp entsprechen, so geschieht einfach gesagt das hier. MySQL passt die
Daten soweit an, dass sie dem Typ entsprechen. Nehmen wir mal an, wir haben eine Spalte als Ganzzahl festgelegt, wollen aber aus Versehen
die Zeichenkette bla
dort hineinschreiben. Jetzt denkt sich MySQL:
"Bla ist keine Zahl, also nehm ich mal die erste, die mir einfällt. Hmmm ... 0!" [Quelle: MySQL]
Und die wird dann in das entsprechende Feld geschrieben. Wenn aber die Zeichenkette ein 45 bla
gewesen wäre, so stände in der
Tabelle nun ein? Genau! 45
, weil das als Zahl erkannt wird. Der Rest wird dann einfach ignoriert. Dasselbe geschieht auch zum
Beispiel dann, wenn man irgendeinen Mist in ein Feld von Typ DATE
reinplatschen will. Das Format orientiert sich leider mal
wieder an den Inselaffen mit ihren komischen Einheiten. Sorry an alle Engländer und diejenigen, die noch das Vergnügen haben, sich mit denen
eine Insel teilen zu müssen. Oder mal zu ihren Kolonien gehörten. Da wird dann aus einem blubb
ein 0000-00-00
.
Dazu später aber mehr.
Und da bei solchen Bockschüssen MySQL keine Fehlermeldung(!) abliefert, solltet ihr euch die Daten erst sehr genau anschauen, bevor ihr sie in eine Tabelle schreiben wollt.
4. Erweiterungen
Zusätzlich kann man zu den Datentypen weitere Angaben vornehmen. Dabei handelt es sich um spezifische Angaben, in den meisten Fällen um
die Verarbeitung von Daten, wenn wir sie in einer Tabelle abspeichern wollen. So hat man zum Beispiel die Möglichkeit, einer Spalte
zusätzlich die Eigenschaft "Einzigartig" (UNIQUE
) zuzuweisen. In diesem Fall ist es also nicht möglich, bei mehreren
Datensätzen in besagter Spalte doppelte Einträge vorzunehmen. Das böte sich zum Beispiel bei einer User-Datenbank an, wo der Benutzername
eine E-Mail ist. Damit verhindert man, dass sich irgendjemand anhand seiner Mail-Adresse mehrere Accounts anlegen kann.
zurück zum vorherigen Abschnitt weiter zum nächsten Abschnitt