DATENTYPEN in mySQL – eine kurze Übersicht

Die Datentypen in mySQL

 

Zum Thema Datentypen lässt sich immer sehr viel sagen und sind wir ehrlich, es ist ein eher trockenes Thema. Dennoch ist es unabdingbar, genau zu wissen, wie man seine Datentypen definiert und welche Wertbereiche man zulässt. Stellen wir uns vor, wir entwerfen eine Datenbank und der Anwender trägt in das Feld Postleitzahl die Namen ein oder bei Namen die Telefonnummern… Soll alles schon vorgekommen sein. Um die Datenbank übersichtlicher und “sicherer” zu machen, ist somit eine stringente Definition der Datentypen für die Attribute unverzichtbar.

 Zudem können Abfragen und Operationen auf der Datenbank durch eine passende Typisierung viel effizienter gestaltet werden. Widmen wir uns also der grauen Theorie:

 

Numerische Typen:

 

  • TINYINT

Sehr kleiner Integer, der einen Wertbereich  zwischen -128 und 127 aufweist. Man kann mit dem TINYINT auch den Wertbereich von 0 bis 255 abbilden, wenn man ihn unsigned definiert.

 

Beispiele:

 

CREATE TABLE ich_lerne_SQL                       

Kd_nr TINYINT;

 

Diese Eingabe führt dazu, dass eine Tabelle (ich_lerne_SQL) erstellt wird und die Kundennummern von -128 bis +127 reichen. Für Kundennummern wohl keine Wahl des Wertbereichs. Will man eine Kundennumer anlegen die über 127 liegt bekommt man folgende Ausgabe:

OutOfRange

Also:

 

CREATE TABLE ich_lerne_SQL

Kd_nr TINYINT UNSIGNED;

 

Damit erhalten wir einen Nummernkreis von 0 bis 255 und dürfte für die ersten Monate der Kundenverwaltung locker ausreichen.

 

TINYINT-UNSIGNED

Mit Hilfe von UNSIGNED können wir also den Wertbereich verfeinern und die Tabelle unseren Anforderungen anpassen.

 

  • Der SMALLINT verhält sich ebenso wie der TINYINT, jedoch bildet er einen Wertbereich von -32768 bis 32767 ab oder von 0 bis 65535. Für eine Kundendatenbank würde das in 90% der Fälle wohl locker aussreichen um Kundennumern zu vergeben
  • Der MEDIUMINT deckt den Wertbereich von -8388608 bis 8388607 ab oder vorzeichenlos von 0 bis 16777215.
  • Der INT reicht von -2147483648 bis 245483647 oder von 0 bis 4294967295
  • Wem das noch nicht reicht, der greift auf den BIGINT zurück der von  -9223372036854775808 bis 9223372036854775807 reicht, oder von 0 bis 18446744073709551615.

 

Auf den BIGINT müssten wir wohl zurückgreifen, wenn wir eine Datenbank zur Erfassung der Kontostände einer Badbank pflegen würden. Aber auch das soll vorkommen.
mySQL bietet nicht nur die Möglichkeit ganze Zahlen zu erfassen, sondern auch Gleitkommazahlen sind

  • FLOAT (M, D) [UNSIGNED]:
    Kleine Fließkommazahlen (mit einfacher Genauigkeit). Dieser Datentyp bildet einen Wertbereich von -3.402823466E+38 bis -1.175494351E, und zwischen 1.71549435E-38 und  3.402823466E+

 

Der Parameter M gibt dabei die Gesamtzahl von Dezimalstellen an, D die Anzahl der Stellen hinter dem Dezimalpunkt.

 

  • DOUBLE (M,D) {UNSIGNED]:
    Fließkommazahl von normaler Größe mit doppelter Genauigkeit. Zulässige Werte sind der Bereich zwischen-1.7976931348623157E+308 und -2.2250738585072014E-3080 und der Bereich zwischen2.2250738585072014E-308 und 1.7976931348623157E+

 

  • DECIMAL [(M) (D)] [UNSIGNED]:
    DECIMAL gibt eine “exakte” Fließkommazahl an. M ist die Gesamtzahl der Dezimalstellen, D gibt die Anzahl der Stellen hinter dem Dezimalpunkt an. Wenn D = 0, haben die Werte keinen Dezimalpunkt und keine Nachkommastelle. Die maximale Anzahl der Stellen (M) beträgt 65.

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>