DATENTYPEN in mySQL – eine kurze Übersicht

 

Text Typen

Um Texteingaben in Tabellen vorzunehmen, steht uns auch eine Vielzahl an möglichen Datentypen zur Verfügung.

  • VARCHAR(n):
    Eine variable Zeichenkette mit einer maximalen Länge von 4000 Byte, durch den Paramater n, kann die maximale Länge eingeschränkt werden.
  • CHAR(n):
    Eine feste Zeichenkette mit einer maximalen Länge von 2000 Byte die ebenfalls durch n parametrisiert wird. Jedoch mit dem Unterschied zu VCHAR, dass Zeichenketten die die vorgebene Länge unterschreiten mit Nullen aufgefüllt werden und somit alle Zeichenketten die selbe Größe in Bytes haben.

 

Darüberhinaus stehen uns die Typen MEDIUMTEXT (bis zu 16.777.25 Zeichen) und LONGTEXT (bis zu 4.294.967.295 Zeichen) zur Verfügung.

 

Sollte jemand also die Lust verspüren, einem Datensatz die Bibel beifügen zu wollen, kann man auf LONTEXT ausweichen. In der Regel verwendet man für Textfelder den Typ CHAR/ VARCHAR.

 

Ein nicht zu unterschätzender Datentyp stellen zuletzt die temporalen Datentypen dar.

Hier unterscheidet der mySQL-Server in erster Linie die Formatierung der eingebenen Datenstrings und formt diese in das gewünschte Datum um. Hier ist höchste Sorgfalt geboten, denn sonst kann es leicht passieren, dass Anwender ein Datum eingeben, der Datentyp jedoch ein anderes Datum daraus macht.

Deswegen hier eine Tabelle der temporalen Datentypen:

 

TYP STANDARDFORMAT Zulässige Werte
DATE YYYY-MM-DD 1000-01-01 bis 9999-12-31
DATETIME YYYY-MM-DD HH:MI:SS 1000-01-01 00:00:00 bis 9999-12-31 23:59:59
TIMESTAMP YYYY-MM-DD HH:MI:SS 1970-01-01 00:00:00 bis 2037-12-31 23:59:59
YEAR YYYY 1901 bis 2155
TIME HHH:MM:SS -838:59:59 bis 838:59:59

 

Damit haben wir das Rüstzeug zur Hand um sinnvoll Tabellen definieren zu können und den Attributen die Datentypen zuzuweisen, die für uns am besten geeignet sind.

 

Eine Anmerkung noch zu den Daten: Beim ersten Entwurf der Datenbank ist mir ein Fehler unterlaufen. Ich plante die Datenbank indem ich bei ‘plz’ einen SMALLINT als Datentyp setzte. Wie wir alle mittlerweile wissen, hat der SMALLINT UNSIGNED einen Wertbereich von 0 bis 65535. Dies reicht nicht aus um Postleitzahlen abzubilden, die größer 65535 sind. Dieser zugegebenermaßen peinliche Fehler ist mir leider auch erst aufgefallen, als ich die Tabellen zum ersten Mal angelegt habe und die Primär- und Fremdschlüssel schon gesetzt waren. Sind Primär- und Fremdschlüssel einmal gesetzt, können diese nicht ohne weiteres abgeändert werden, da die REFERENCES-Funktion dies zu verhindern weiß. Ich hatte somit die Postleitzahlen nach unten korrigiert um die Daten überhaupt erfassen zu können. Am Ende entschied ich mich aber dafür, die Datenbank mit dem richtigen Datentyp noch einmal aufzubauen.

Wichtig für euch sollte daher nur sein: ACHTET IMMER auf die Datentypen! Im Nachhinein sind Änderungen meist nur schwer möglich und mann kann nie sagen, ob und wie es die Funktion der Datenbank beeinträchtigt.

Ein Gedanke zu „DATENTYPEN in mySQL – eine kurze Übersicht

  1. Pingback: Die Beiträge im Überblick | SQL – Arbeiten mit Datenbanken

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>