Data Types

0

SQL Datentypen

Jede Spalte in einer Datenbanktabelle muss einen Namen und einen Datentyp haben.

Ein SQL Entwickler muss beim Erstellen einer Tabelle entscheiden, welche Art von Daten in jeder Spalte gespeichert werden. Der Datentyp ist eine Richtlinie für SQL, um zu verstehen, welche Art von Daten in jeder Spalte erwartet wird, und er gibt auch an, wie SQL mit den gespeicherten Daten interagiert.

Hinweis: Datentypen können in verschiedenen Datenbanken unterschiedliche Namen haben. Und selbst wenn der Name gleich ist, können die Größe und andere Details unterschiedlich sein! Lesen Sie immer die Dokumentation!

MySQL Datentypen (Version 8.0)

In MySQL gibt es drei Hauptdatentypen: Zeichenfolge, numerisch sowie Datum und Uhrzeit.

Zeichenfolgendatentypen

DatentypBeschreibung
CHAR(size)Eine Zeichenfolge mit FESTER Länge (kann Buchstaben, Zahlen und Sonderzeichen enthalten). Der Parameter size gibt die Spaltenlänge in Zeichen an – kann zwischen 0 und 255 liegen. Der Standardwert ist 1.
VARCHAR(size)Eine Zeichenfolge mit VARIABLER Länge (kann Buchstaben, Zahlen und Sonderzeichen enthalten). Der Parameter size gibt die maximale Zeichenfolgenlänge in Zeichen an – kann zwischen 0 und 65535 liegen.
BINARY(size)Gleich CHAR(), speichert aber binäre Byte-Strings. Der Parameter size gibt die Spaltenlänge in Bytes an. Der Standardwert ist 1.
VARBINARY(size)Gleich VARCHAR(), speichert aber binäre Bytefolgen. Der Größenparameter gibt die maximale Spaltenlänge in Bytes an.
TINYBLOBFür BLOBs (Binary Large Objects). Maximale Länge: 255 Bytes
TINYTEXTEnthält eine Zeichenfolge mit einer maximalen Länge von 255 Zeichen
TEXT(size)Enthält einen String mit einer maximalen Länge von 65.535 Bytes
BLOB(size)Für BLOBs (Binary Large Objects). Bietet Platz für bis zu 65.535 Byte Daten
MEDIUMTEXTEnthält eine Zeichenfolge mit einer maximalen Länge von 16.777.215 Zeichen
MEDIUMBLOBFür BLOBs (Binary Large Objects). Bietet Platz für bis zu 16.777.215 Byte Daten
LONGTEXTEnthält eine Zeichenfolge mit einer maximalen Länge von 4.294.967.295 Zeichen
LONGBLOBFür BLOBs (Binary Large Objects). Bietet Platz für bis zu 4.294.967.295 Byte Daten
ENUM(val1, val2, val3, …)Ein String-Objekt, das nur einen Wert haben kann, der aus einer Liste möglicher Werte ausgewählt wird. Sie können bis zu 65535 Werte in einer ENUM-Liste auflisten. Wenn ein Wert eingefügt wird, der nicht in der Liste enthalten ist, wird ein leerer Wert eingefügt. Die Werte werden in der Reihenfolge sortiert, in der Sie sie eingeben.
SET(val1, val2, val3, …)Ein String-Objekt, das 0 oder mehr Werte haben kann, die aus einer Liste möglicher Werte ausgewählt werden. Sie können bis zu 64 Werte in einer SET Liste auflisten.

Numerische Datentypen

DatentypBeschreibung
BIT(size)Ein Bit-Werttyp. Die Anzahl der Bits pro Wert wird in der Größe angegeben. Der Größenparameter kann einen Wert zwischen 1 und 64 enthalten. Der Standardwert für die Größe ist 1.
TINYINT(size)Eine sehr kleine Ganzzahl. Der vorzeichenbehaftete Bereich reicht von -128 bis 127. Der vorzeichenlose Bereich reicht von 0 bis 255. Der Größenparameter gibt die maximale Anzeigebreite an (255).
BOOLNull wird als falsch betrachtet, Werte ungleich Null werden als wahr betrachtet.
BOOLEANGleich BOOL
SMALLINT(size)Eine kleine Ganzzahl. Der vorzeichenbehaftete Bereich reicht von -32768 bis 32767. Der vorzeichenlose Bereich reicht von 0 bis 65535. Der Größenparameter gibt die maximale Anzeigebreite an (255).
MEDIUMINT(size)Eine mittlere Ganzzahl. Der vorzeichenbehaftete Bereich reicht von -8388608 bis 8388607. Der vorzeichenlose Bereich reicht von 0 bis 16777215. Der Größenparameter gibt die maximale Anzeigebreite an (255).
INT(size)Eine mittlere Ganzzahl. Der vorzeichenbehaftete Bereich reicht von -2147483648 bis 2147483647. Der vorzeichenlose Bereich reicht von 0 bis 4294967295. Der Größenparameter gibt die maximale Anzeigebreite an (255).
INTEGER(size)Gleich INT(Größe)
BIGINT(size)Eine große Ganzzahl. Der vorzeichenbehaftete Bereich reicht von -9223372036854775808 bis 9223372036854775807. Der vorzeichenlose Bereich reicht von 0 bis 18446744073709551615. Der Größenparameter gibt die maximale Anzeigebreite an (255).
FLOAT(sized)Eine Gleitkommazahl. Die Gesamtzahl der Ziffern wird in size angegeben. Die Anzahl der Ziffern nach dem Dezimalpunkt wird im Parameter d angegeben. Diese Syntax ist in MySQL 8.0.17 veraltet und wird in zukünftigen MySQL-Versionen entfernt.
FLOAT(p)Eine Gleitkommazahl. MySQL verwendet den p-Wert, um zu bestimmen, ob für den resultierenden Datentyp FLOAT oder DOUBLE verwendet werden soll. Wenn p zwischen 0 und 24 liegt, wird der Datentyp zu FLOAT(). Wenn p zwischen 25 und 53 liegt, wird der Datentyp zu DOUBLE().
DOUBLE(sized)Eine Gleitkommazahl in normaler Größe. Die Gesamtzahl der Ziffern wird in size angegeben. Die Anzahl der Ziffern nach dem Dezimalpunkt wird im Parameter d angegeben.
DOUBLE PRECISION(sized) 
DECIMAL(sized)Eine exakte Festkommazahl. Die Gesamtzahl der Ziffern wird in size angegeben. Die Anzahl der Ziffern nach dem Dezimalpunkt wird im Parameter d angegeben. Die maximale Zahl für size ist 65. Die maximale Zahl für d ist 30. Der Standardwert für size ist 10. Der Standardwert für d ist 0.
DEC(sized)Gleich DECIMAL(size,d)

Hinweis: Alle numerischen Datentypen können eine zusätzliche Option haben: UNSIGNED oder ZEROFILL. Wenn Sie die Option UNSIGNED hinzufügen, lässt MySQL keine negativen Werte für die Spalte zu. Wenn Sie die Option ZEROFILL hinzufügen, fügt MySQL der Spalte automatisch auch das Attribut UNSIGNED hinzu.

Datums- und Uhrzeitdatentypen

DatentypBeschreibung
DATEEin Date. Format: YYYY-MM-DD. Der unterstützte Bereich reicht von „1000-01-01“ bis „9999-12-31“.
DATETIME(fsp)Eine Datums- und Uhrzeitkombination. Format: YYYY-MM-DD hh:mm:ss. Der unterstützte Bereich reicht von „1000-01-01 00:00:00“ bis „9999-12-31 23:59:59“. Durch Hinzufügen von DEFAULT und ON UPDATE in der Spaltendefinition wird eine automatische Initialisierung und Aktualisierung auf das aktuelle Datum und die aktuelle Uhrzeit erreicht.
TIMESTAMP(fsp)Ein Zeitstempel. TIMESTAMP-Werte werden als Anzahl der Sekunden seit der Unix-Epoche (‚1970-01-01 00:00:00‘ UTC) gespeichert. Format: YYYY-MM-DD hh:mm:ss. Der unterstützte Bereich reicht von ‚1970-01-01 00:00:01‘ UTC bis ‚2038-01-09 03:14:07‘ UTC. Die automatische Initialisierung und Aktualisierung auf das aktuelle Datum und die aktuelle Uhrzeit kann mit DEFAULT CURRENT_TIMESTAMP und ON UPDATE CURRENT_TIMESTAMP in der Spaltendefinition angegeben werden.
TIME(fsp)Eine Zeit. Format: hh:mm:ss. Der unterstützte Bereich reicht von „-838:59:59“ bis „838:59:59“.
YEAREin Jahr im vierstelligen Format. Zulässige Werte im vierstelligen Format: 1901 bis 2155 und 0000.
MySQL 8.0 unterstützt kein Jahr im zweistelligen Format.

SQL Server Datentypen

Zeichenfolgendatentypen

DatentypBeschreibungMaximale GrößeLagerung
char(n)Zeichenfolge mit fester Breite8.000 ZeichenDefinierte Breite
varchar(n)Zeichenfolge mit variabler Breite8.000 Zeichen2 Bytes + Anzahl der Zeichen
varchar(max)Zeichenfolge mit variabler Breite1.073.741.824 Zeichen2 Bytes + Anzahl der Zeichen
textZeichenfolge mit variabler Breite2 GB Textdaten4 Bytes + Anzahl der Zeichen
ncharUnicode-Zeichenfolge mit fester Breite4.000 ZeichenDefinierte Breite x 2
nvarcharUnicode-Zeichenfolge mit variabler Breite4.000 Zeichen 
nvarchar(max)Unicode-Zeichenfolge mit variabler Breite536.870.912 Zeichen 
ntextUnicode-Zeichenfolge mit variabler Breite2 GB Textdaten 
binary(n)Binärer String mit fester Breite8.000 Byte 
varbinaryBinärer String mit variabler Breite8.000 Byte 
varbinary(max)Binärer String mit variabler Breite2GB 
imageBinärer String mit variabler Breite2GB 

Numerische Datentypen

DatentypBeschreibungLagerung
bitGanzzahl, die 0, 1 oder NULL sein kann 
tinyintErlaubt ganze Zahlen von 0 bis 2551 Byte
smallintErlaubt ganze Zahlen zwischen -32.768 und 32.7672 Byte
intErlaubt ganze Zahlen zwischen -2.147.483.648 und 2.147.483.6474 Byte
bigintErlaubt ganze Zahlen zwischen -9.223.372.036.854.775.808 und 9.223.372.036.854.775.8078 Byte
decimal(p,s)Zahlen mit fester Genauigkeit und Skalierung. Erlaubt Zahlen von -10^38 +1 bis 10^38 –1. Der Parameter p gibt die maximale Gesamtzahl der Ziffern an, die gespeichert werden können (sowohl links als auch rechts vom Dezimalpunkt). p muss ein Wert zwischen 1 und 38 sein. Der Standardwert ist 18. Der Parameter s gibt die maximale Anzahl der Ziffern an, die rechts vom Dezimalpunkt gespeichert werden können. s muss ein Wert zwischen 0 und p sein. Der Standardwert ist 0.5-17 Byte
numeric(p,s)Zahlen mit fester Genauigkeit und Skalierung. Erlaubt Zahlen von -10^38 +1 bis 10^38 –1. Der Parameter p gibt die maximale Gesamtzahl der Ziffern an, die gespeichert werden können (sowohl links als auch rechts vom Dezimalpunkt). p muss ein Wert zwischen 1 und 38 sein. Der Standardwert ist 18. Der Parameter s gibt die maximale Anzahl der Ziffern an, die rechts vom Dezimalpunkt gespeichert werden können. s muss ein Wert zwischen 0 und p sein. Der Standardwert ist 0.5-17 Byte
smallmoneyWährungsdaten von -214.748,3648 bis 214.748,36474 Byte
moneyWährungsdaten von -922.337.203.685.477,5808 bis 922.337.203.685.477,58078 Byte
float(n)Gleitkommazahlen von -1,79E + 308 bis 1,79E + 308. Der Parameter n gibt an, ob das Feld 4 oder 8 Bytes enthalten soll. float(24) enthält ein 4-Byte-Feld und float(53) enthält ein 8-Byte-Feld. Der Standardwert von n ist 53.4 oder 8 Bytes
realGleitkommazahlendaten von -3,40E + 38 bis 3,40E + 384 Byte

Datums und Uhrzeitdatentypen

DatentypBeschreibungLagerung
datetimeVom 1. Januar 1753 bis 31. Dezember 9999 mit einer Genauigkeit von 3,33 Millisekunden8 Byte
datetime2Vom 1. Januar 0001 bis 31. Dezember 9999 mit einer Genauigkeit von 100 Nanosekunden6-8 Bytes
smalldatetimeVom 1. Januar 1900 bis zum 6. Juni 2079 mit einer Genauigkeit von 1 Minute4 Byte
dateNur ein Datum speichern. Vom 1. Januar 0001 bis zum 31. Dezember 99993 Byte
timeSpeichern Sie eine Zeit nur mit einer Genauigkeit von 100 Nanosekunden3-5 Bytes
datetimeoffsetDasselbe wie datetime2 mit dem Zusatz einer Zeitzonenverschiebung8-10 Byte
timestampSpeichert eine eindeutige Nummer, die jedes Mal aktualisiert wird, wenn eine Zeile erstellt oder geändert wird. Der Zeitstempelwert basiert auf einer internen Uhr und entspricht nicht der Echtzeit. Jede Tabelle kann nur eine Zeitstempelvariable haben. 

Andere Datentypen

DatentypBeschreibung
sql_variantSpeichert bis zu 8.000 Byte Daten verschiedener Datentypen, außer Text, NText und Zeitstempel
uniqueidentifierSpeichert eine global eindeutige Kennung (GUID)
xmlSpeichert XML-formatierte Daten. Maximal 2 GB
cursorSpeichert einen Verweis auf einen Cursor, der für Datenbankoperationen verwendet wird
tableSpeichert einen Ergebnissatz zur späteren Verarbeitung

MS Access Datentypen

DatentypBeschreibungLagerung
TextFür Text oder Kombinationen aus Text und Zahlen verwenden. Maximal 255 Zeichen. 
MemoMemo wird für größere Textmengen verwendet. Speichert bis zu 65.536 Zeichen. Hinweis: Memofelder können nicht sortiert werden. Sie sind jedoch durchsuchbar. 
ByteErlaubt ganze Zahlen von 0 bis 2551 Byte
IntegerErlaubt ganze Zahlen zwischen -32.768 und 32.7672 Byte
LongErlaubt ganze Zahlen zwischen -2.147.483.648 und 2.147.483.6474 Byte
SingleGleitkommazahlen mit einfacher Genauigkeit. Kann die meisten Dezimalzahlen verarbeiten4 Byte
DoubleGleitkommazahlen mit doppelter Genauigkeit. Kann die meisten Dezimalzahlen verarbeiten8 Byte
CurrencyFür Währungen verwenden. Bietet Platz für bis zu 15 Ziffern in Dollar plus 4 Dezimalstellen. Tipp: Sie können auswählen, welche Landeswährung verwendet werden soll.8 Byte
AutoNumberAutoWert-Felder geben jedem Datensatz automatisch eine eigene Nummer, normalerweise beginnend bei 14 Byte
Date/TimeFür Datum und Uhrzeit verwenden8 Byte
Yes/NoEin logisches Feld kann als Ja/Nein, Wahr/Falsch oder Ein/Aus angezeigt werden. Verwenden Sie im Code die Konstanten Wahr und Falsch (entspricht -1 und 0). Hinweis: Nullwerte sind in Ja/Nein-Feldern nicht zulässig.1 Bit
Ole ObjectKann Bilder, Audio, Video oder andere BLOBs (Binary Large Objects) speichernBis zu 1 GB
HyperlinkEnthält Links zu anderen Dateien, einschließlich Webseiten 
Lookup WizardErmöglicht Ihnen die Eingabe einer Liste von Optionen, die dann aus einer Dropdown-Liste ausgewählt werden können4 Byte
Nach oben scrollen