Was sind Datentypen und wofür brauchen wir diese in SQL?
Für jedes Datenbankfeld muss bei der Erstellung der Datenbanktabelle ein Datentyp angegeben werden. Was bedeutet das?
Mit dem Datentyp legen wir fest welche Art von Daten wir in einem Feld speichern können. Z.B. können wir in einem Feld mit den Datentyp date nur Datumswerte speichern.
Wieso muss man sich schon beim Anlegen der Tabelle daf√ºr entscheiden welche Werte in einem Feld gespeichert werden k√∂nnen? Das hat zum einen damit zu tun, dass nicht jeder Datentyp die gleiche Speichermenge braucht, und das System eben schon im Vorhinein wissen will, wie viel Speicher es f√ºr ein bestimmtes Feld bereitstellen muss und zum Anderen ist mit jedem Datentyp auch eine Pr√ºfung auf Sinnhaftigkeit der Daten gegeben. So kann man eben den Wert ‚2012-14-32‘ nicht in ein Datumsfeld speichern, da es weder ein Monat 14 und auch kein Monat mit 32 Tagen gibt.
Weiters stellen viele DBMS f√ºr gewisse Datentypen gewisse Funktionen bereit. Z.B. Rechenoperationen, Zerlegen von Zeichenketten …
Also es ist durchaus sinnvoll sich im Vorhinein Gedanken zu machen, welche Werte welches Feld annehmen kann.
Welche Datentypen gibt es?
Hier ist es wichtig zu erw√§hnen, dass fast jeder Datenbankhersteller eine gewisse Anzahl an eigenen Datentypen bereitstellt, oder manche Standardtypen etwas anders implementiert hat. Es empfiehlt sich also durchaus einmal das Handbuch der Datenbank die man verwendet genauer zu lesen. Hier aber eine kurze √úbersicht, die die wichtigsten Datentypen enth√§lt:
Datentyp | Speicherverbrauch | Beschreibung | Wertebereich |
---|---|---|---|
smallint | 2 bytes | kleine Ganzzahlen | -32768 bis +32767 |
integer | 4 bytes | Ganzzahlen | -2147483648 bis +2147483647 |
bigint | 8 bytes | Lange Ganzzahlen | -9223372036854775808 bis 9223372036854775807 |
decimal | variabel | exakter Dezimalwert; vorgegebene Anzahl an Nachkommastellen | offen |
numeric | variabel | Zahlwert | offen |
real | 4 bytes | Dezimalzahl, ungenau im Nachkommabereich | |
double | 8 bytes | Dezimalzahl, ungenau im Nachkommabereich | |
varchar |  variabel | Zeichendatentypen für Zeichenketten mit variabler Länge | |
datetime |  variabel | Datum und Zeit gemeinsam speichern | |
date |  variabel | Datumswerte | |
timestamp |  variabel | Zeitstempel meistens in Millisekunden | |
time |  variabel | Zeitangaben | |
blob |  variabel | Binärdaten |
In vielen Datenbank Management-Systemen gibt es dann noch Zusatzattribute wie unsigned um den Wertebereich zu √§ndern.
Also viel Spass beim Lesen in der Dokumentation des verwendeten DBMS.