Hauptmenü

Untermenü

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 (preisVON 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:

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