SQL-Datentypen legen fest, welche Art von Werten eine Spalte speichern darf – Zahlen, Texte, Zeitpunkte oder Binärdaten. Der Typ bestimmt nicht nur den Speicherbedarf, sondern auch, wie Vergleiche, Sortierung und Rechenoperationen funktionieren.
Die wichtigsten Typgruppen
- Ganzzahlen:
TINYINT,SMALLINT,INTundBIGINTspeichern ganze Zahlen.INTfasst Werte von etwa −2,1 Milliarden bis +2,1 Milliarden; wer größere Bereiche oder negative IDs braucht, nimmtBIGINT.TINYINTgenügt für kleine Zähler wie Statuscodes. - Dezimalzahlen:
DECIMAL(p,s)beziehungsweiseNUMERICspeichern exakte Nachkommawerte –pist die Gesamtzahl der Stellen,sdie Nachkommastellen. Für Geldbeträge istDECIMAL(10,2)die richtige Wahl.FLOAT/REALsind dagegen binäre Näherungen und können Rundungsfehler erzeugen. - Zeichenketten:
CHAR(n)belegt immer die feste Längen,VARCHAR(n)nur so viel wie nötig.VARCHAR(255)ist der Allrounder für kürzere Texte; lange Inhalte gehören inTEXT(MySQL/MariaDB). - Datum und Zeit:
DATEspeichert nur das Datum,TIMEnur die Uhrzeit,DATETIME/TIMESTAMPbeides. PostgreSQL unterscheidet zusätzlich, ob eine Zeitzone gespeichert wird (TIMESTAMPTZ). - Wahrheitswerte:
BOOLEANist in PostgreSQL ein echter Typ; MySQL/MariaDB bilden ihn alsTINYINT(1)mit 0/1 ab. - Binärdaten und mehr:
BLOB/BINARYfür Dateien,JSONfür strukturierte Dokumente,UUIDfür global eindeutige Schlüssel,ENUMfür feste Wertelisten.
So wählen Sie richtig
Der kleinste Typ, der alle erwarteten Werte fasst, ist meist der beste: Er spart Speicher und beschleunigt Indizes. Geld niemals in FLOAT legen – Rundungsfehler führen zu falschen Summen. Für optionale Felder erlaubt die Spalte NULL (mehr dazu unter SQL NULL); wer jeden Wert braucht, setzt ein NOT NULL-Constraint.
Beim Anlegen einer Tabelle schreiben Sie den Typ direkt hinter den Spaltennamen – die Grundlagen zeigt SQL CREATE TABLE, den passenden Gesamtaufbau das Datenbankschema. Wer mit Tabellen und Abfragen beginnen möchte, startet bei den SQL-Grundlagen.
Verwandte Grundlagen: SQL Temporäre Tabelle, SQL TRUNCATE.