SQL-Datentypen: Einführung
SQL-Datentypen definieren die Art von Werten, die in einer Tabellenspalte gespeichert werden können. Wenn Sie beispielsweise möchten, dass eine Spalte nur Ganzzahlwerte speichert, können Sie ihren Datentyp als INT
definieren.
SQL-Datentypen lassen sich in die folgenden Kategorien einteilen:
- Numerische Datentypen wie
INT
,TINYINT
,BIGINT
,FLOAT
,REAL
, usw. - Datum- und Zeitdatentypen wie
DATE
,TIME
,DATETIME
, usw. - Zeichen- und String-Datentypen wie
CHAR
,VARCHAR
,TEXT
, usw. - Unicode-Zeichenketten-Datentypen wie
NCHAR
,NVARCHAR
,NTEXT
, usw. - Binäre Datentypen wie
BINARY
,VARBINARY
, usw. - Spezielle Datentypen wie
CLOB
,BLOB
,JSON
,XML
,GEOMETRY
, usw.
In diesem Artikel erfahren Sie mehr über verschiedene Kategorien von SQL-Datentypen.
Unterschiede zwischen relationalen Datenbankanbietern
Nicht alle Datentypen werden von jedem relationalen Datenbankanbieter unterstützt. Zum Beispiel:
- Oracle unterstützt keinen
DATETIME
, bietet jedochTIMESTAMP
an. - MySQL unterstützt keinen nativen
CLOB
, sondern verwendetTEXT
-Äquivalente. - Microsoft SQL Server bietet spezielle Typen wie
MONEY
undSMALLMONEY
, die nicht von anderen Datenbanken unterstützt werden.
Hinweis: Jeder Anbieter hat spezifische Größenbeschränkungen für Datentypen. Überprüfen Sie die Dokumentation des jeweiligen Anbieters für Details.
SQL Numerische Datentypen
Diese Datentypen werden für Zahlenwerte verwendet:
Datentyp | Von | Bis |
---|---|---|
BIT | 1 | 0 |
TINYINT | 0 | 255 |
SMALLINT | -32,768 | 32,767 |
INT | -2,147,483,648 | 2,147,483,647 |
BIGINT | -9,223,372,036,854,775,808 | 9,223,372,036,854,775,807 |
DECIMAL | -10^38 + 1 | 10^38 – 1 |
NUMERIC | -10^38 + 1 | 10^38 – 1 |
FLOAT | -1.79E+308 | 1.79E+308 |
REAL | -3.40E+38 | 3.40E+38 |
SQL Datum- und Zeit-Datentypen
Datentyp | Beschreibung |
---|---|
DATE | Speichert ein Datum im Format YYYY-MM-DD . |
TIME | Speichert eine Uhrzeit im Format HH:MM:SS . |
DATETIME | Speichert Datum und Uhrzeit im Format YYYY-MM-DD HH:MM:SS . |
TIMESTAMP | Speichert die Anzahl der Sekunden seit der Unix-Epoche (1970-01-01 00:00:00 ). |
YEAR | Speichert ein Jahr im 2- oder 4-stelligen Format (1970 bis 2069 ).SQL Zeichen- und String-Datentypen |
SQL Zeichen- und String-Datentypen
Diese Datentypen werden für Textzeichenfolgen verwendet:
Datentyp | Beschreibung |
---|---|
CHAR | Feste Länge, bis zu 8.000 Zeichen. |
VARCHAR | Variable Länge, bis zu 8.000 Zeichen. |
VARCHAR(max) | Variable Länge, theoretisch bis zu 2 GB. In MySQL nicht unterstützt. |
TEXT | Variable Länge, maximal 2 GB. |
Hinweis: Verwenden Sie diese Datentypen nicht für Unicode-Daten. Nutzen Sie stattdessen Unicode-Datentypen.
SQL Unicode Zeichen- und String-Datentypen
Diese Datentypen unterstützen Unicode-Daten:
Datentyp | Beschreibung |
---|---|
NCHAR | Feste Länge, bis zu 4.000 Zeichen. |
NVARCHAR | Variable Länge, bis zu 4.000 Zeichen. |
NVARCHAR (MAX) | Variable Länge, maximal 2 GB. |
Hinweis: Diese Datentypen werden in MySQL-Datenbanken nicht unterstützt.
SQL Binäre Datentypen
Datentyp | Beschreibung |
---|---|
BINARY | Feste Länge, bis zu 8.000 Bytes. |
VARBINARY | Variable Länge, bis zu 8.000 Bytes. |
VARBINARY(max) | Variable Länge, maximal 2 GB binäre Daten. |
IMAGE | Variable Länge, maximal 2 GB binäre Daten (veraltet in neueren SQL-Versionen). |
Spezielle Datentypen
Datentyp | Beschreibung |
---|---|
CLOB | Speichert bis zu 2 GB Textdaten (nur in einigen Datenbanken verfügbar). |
BLOB | Speichert große binäre Daten (z. B. Bilder oder Videos). |
XML | Speichert XML-Daten. |
JSON | Speichert JSON-Daten (nativ in MySQL, PostgreSQL, SQL Server, Oracle verfügbar).Fazit |
Praktisches Beispiel
CREATE TABLE BeispielTabelle (
ID INT PRIMARY KEY,
Name NVARCHAR(100),
Alter TINYINT,
Gehalt DECIMAL(10, 2),
Eintrittsdatum DATE,
Bild BLOB
);