SQL Datentypen geben in Spalten vor, in welcher Form die Einträge gespeichert werden.
Jede Spalte einer Tabelle muss einem SQL Datentypen zugeordnet sein. Bei der Zuweisung muss überlegt werden, in welchem Format die Informationen erfasst werden, um eine einheitliche Datensammlung zu ermöglichen. Datentypen lassen sich in folgenden Kategorien einteilen:
- String-Datentypen
- Numerische Datentypen
- Datums- und Zeitdatentypen
- Unicode-Datentypen
- Binäre Datentypen
- Diverse Datentypen
Nicht alle Datenbankhersteller (z.B. MySQL, Oracle, SQL Server etc.) unterstützen alle Datentypen.
String Datentypen
Datentyp | Speicher | Beschreibung | Beispielfall |
CHAR | 1 Byte pro Zeichen | Feste Länge von n Zeichen, maximal 8000 Zeichen lang | Postleitzahl |
VARCHAR | 1 Byte pro Zeichen | Feste Länge von n Zeichen, maximal 8000 Zeichen lang | Username, E-Mail-Adresse |
TEXT | Bis zu 64 KB | Speicher von bis zu 65.535 Zeichen | Nachrichten, E-Mails |
TINYTEXT | Bis zu 255 Bytes | Speicher von bis zu 255 Zeichen | Zusammenfassungen |
MEDIUMTEXT | Bis zu 16 MB | Speicher von bis zu 16.777.215 Zeichen | Kurzbücher |
LONGTEXT | Bis zu 4 GB | Speicher von bis zu 4.294.967.295 Zeichen | Bücher |
Numerische Datentypen
Datentyp | Speicher | Von | Bis | Zusatz |
BIT(M) | 1 Byte pro 8 Bit | 0 | 1 | M gibt die Anzahl der Bits pro Wert an, von 1 bis 64. Der Standardwert für M ist 1. |
TINYINT | 1 Byte | 0 | 255 | Erlaubt keine Kommazahlen |
SMALLINT | 2 Bytes | -32.768 | 32.767 | Erlaubt keine Kommazahlen |
INT | 4 Bytes | -2.147.483.648 | 2.147.483.647 | Erlaubt keine Kommazahlen |
BIGINT | 8 Bytes | -9.223.372.036.854.775.808 | 9.223.372.036.854.775.807 | Erlaubt keine Kommazahlen |
DECIMAL(n, k) | Variabel | -1038 | 1038 (100 Sextillionen) | Erlaubt Kommazahlen n: Anzahl der Ziffern inkl. Kommastellen |
FLOAT(n,k) | 4 Bytes, wenn p <= 24 | -1,79 * 10308 | 1,79 * 10308 | Erlaubt Kommazahlen n: Anzahl der Ziffern inkl. Kommastellen |
Datums- und Zeitdatentypen
Datentyp | Format |
DATE | JJJJ-MM-TT |
DATETIME | JJJJ-MM-TT hh:mm:ss |
TIMESTAMP | JJJJ-MM-TT hh:mm:ss (UTC, Koordinierte Weltzeit) |
TIME | hh:mm:ss |
YEAR | YYYY |
Unicode-Datentypen
Unicode ist ein Zeichensatz, mit dem alle Sprachen der Welt dargestellt werden. Er enthält über eine Million Zeichen, sodass beispielsweise arabisch, chinesisch und kyrillisch dargestellt werden können. Reguläre String-Datentypen können Unicode nicht verarbeiten, sodass es zu fehlerhaft dargestellten Zeichen kommen kann. Dafür ist der Speicher als Unicode-Datentyp allerdings doppelt so groß.
Datentyp | Beschreibung |
NCHAR(n) | Feste Länge von n Zeichen in Unicode, maximal 4000 Zeichen lang |
NVARCHAR(n) | Variable Länge bis zu n Zeichen in Unicode, maximal 4000 Zeichen lang |
NTEXT | Variable Länge mit maximal 1GB großen Daten |
Binäre Datentypen
Datentyp | Beschreibung |
BINARY(n) | Feste Länge von n Bytes, maximal 8000 Bytes groß |
VARBINARY(n) | Variable Länge bis zu n Bytes, maximal 8000 Bytes groß |
IMAGE | Variable Länge mit maximal 2GB großen binären Daten |
Diverse Datentypen
Datentyp | Beschreibung |
BLOB | Speichern von großen binären Objekten (z.B. Bild- oder Audiodateien) |
CLOB | Speichern von sehr langen Zeichenketten |
JSON | Speichern von JSON-Dateien |
XML | Speichern von XML-Dateien |