SQL Datentypen für verschiedene Datenbanken
Von Microsoft Access, MySQL und SQL Server verwendete Datentypen und Bereiche.
Microsoft Access-Datentypen
| Datentyp | Beschreibung | Speicher |
|---|---|---|
| Text | Wird für Text oder Kombinationen aus Text und Zahlen verwendet. Maximal 255 Zeichen. | |
| Memo | Memo wird für größere Textmengen verwendet. Speichert bis zu 65,536 Zeichen.Hinweis:Memo-Felder können nicht sortiert werden. Sie sind jedoch durchsuchbar. | |
| Byte | Erlaubt Zahlen von 0 bis 255. | 1 Byte |
| Integer | Erlaubt alle Zahlen zwischen -32,768 und 32,767. | 2 Byte |
| Long | Erlaubt alle Zahlen zwischen -2,147,483,648 und 2,147,483,647. | 4 Byte |
| Single | Gleitkommazahl mit einfacher Genauigkeit. Verarbeitet die meisten Dezimalzahlen. | 4 Byte |
| Double | Gleitkommazahl mit doppelter Genauigkeit. Verarbeitet die meisten Dezimalzahlen. | 8 Bytes |
| Currency | Wird für Währung verwendet. Unterstützt 15 Stellen für Dollar, plus 4 Dezimalstellen.Tipp:Sie können auswählen, welche Landeswährung verwendet werden soll. | 8 Bytes |
| AutoNumber | AutoNumber-Felder weisen jedem Datensatz automatisch eine Nummer zu, üblicherweise beginnend bei 1. | 4 Byte |
| Datum/Uhrzeit | Wird für Datums- und Uhrzeitangaben verwendet | 8 Bytes |
| Ja/Nein | Logische Felder können als Ja/Nein, Wahr/Falsch oder Ein/Aus angezeigt werden. Verwenden Sie im Code die Konstanten True und False (entsprechen 1 und 0).Hinweis:Null-Werte sind in Ja/Nein-Feldern nicht zulässig | 1 Bit |
| OLE-Objekt | Kann Bilder, Audio, Video oder andere BLOBs (Binary Large OBjects) speichern. | Bis zu 1GB |
| Hyperlink | Enthält Links zu anderen Dateien, einschließlich Webseiten. | |
| Nachschlage-Assistent | Ermöglicht es Ihnen, eine Optionsliste zu erstellen, die aus einer Dropdown-Liste ausgewählt werden kann. | 4 Byte |
MySQL-Datentypen
In MySQL gibt es drei Haupttypen: Text-, Zahlen- und Datums-/Zeittypen.
Texttypen:
| Datentyp | Beschreibung |
|---|---|
| CHAR(size) | Speichert eine Zeichenkette fester Länge (kann Buchstaben, Zahlen und Sonderzeichen enthalten). Geben Sie die Länge der Zeichenkette in Klammern an. Bis zu 255 Zeichen. |
| VARCHAR(size) | Speichert eine Zeichenkette variabler Länge (kann Buchstaben, Zahlen und Sonderzeichen enthalten). Geben Sie die maximale Länge der Zeichenkette in Klammern an. Bis zu 255 Zeichen.Hinweis:Wenn die Länge des Werts größer als 255 ist, wird er in einen TEXT-Typ konvertiert. |
| TINYTEXT | Speichert eine Zeichenkette mit einer maximalen Länge von 255 Zeichen. |
| TEXT | Speichert eine Zeichenkette mit einer maximalen Länge von 65,535 Zeichen. |
| BLOB | Wird für BLOBs (Binary Large OBjects) verwendet. Speichert bis zu 65,535 Bytes an Daten. |
| MEDIUMTEXT | Speichert eine Zeichenkette mit einer maximalen Länge von 16,777,215 Zeichen. |
| MEDIUMBLOB | Wird für BLOBs (Binary Large OBjects) verwendet. Speichert bis zu 16,777,215 Bytes an Daten. |
| LONGTEXT | Speichert eine Zeichenkette mit einer maximalen Länge von 4,294,967,295 Zeichen. |
| LONGBLOB | Wird für BLOBs (Binary Large OBjects) verwendet. Speichert bis zu 4,294,967,295 Bytes an Daten. |
| ENUM(x,y,z,etc.) | Ermöglicht die Eingabe einer Liste möglicher Werte. Sie können bis zu 65,535 Werte in einer ENUM-Liste auflisten. Wenn ein eingefügter Wert nicht in der Liste vorhanden ist, wird ein NULL-Wert eingefügt. Hinweis:Diese Werte werden in der Reihenfolge sortiert, in der Sie sie eingeben. Mögliche Werte können in diesem Format eingegeben werden: ENUM('X','Y','Z') |
| SET | Ähnlich wie ENUM, außer dass SET höchstens 64 Listeneinträge enthalten kann und SET mehr als eine Auswahl speichern kann. |
Zahlentypen:
| Datentyp | Beschreibung |
|---|---|
| TINYINT(size) | Mit Vorzeichen von -128 bis 127, ohne Vorzeichen von 0 bis 255. |
| SMALLINT(size) | Mit Vorzeichen reicht der Bereich von -32768 bis 32767, ohne Vorzeichen von 0 bis 65535, der Standardwert für size ist 6. |
| MEDIUMINT(size) | Mit Vorzeichen reicht der Bereich von -8388608 bis 8388607, ohne Vorzeichen von 0 bis 16777215. Der Standardwert für size ist 9. |
| INT(size) | Mit Vorzeichen reicht der Bereich von -2147483648 bis 2147483647, ohne Vorzeichen von 0 bis 4294967295. Der Standardwert für size ist 11. |
| BIGINT(size) | Mit Vorzeichen reicht der Bereich von -9223372036854775808 bis 9223372036854775807, ohne Vorzeichen von 0 bis 18446744073709551615. Der Standardwert für size ist 20. |
| FLOAT(size,d) | Kleine Zahlen mit einem gleitenden Dezimalpunkt. Geben Sie im Parameter size die maximale Anzahl der anzuzeigenden Ziffern an. Geben Sie im Parameter d die maximale Anzahl der Ziffern rechts vom Dezimalpunkt an. |
| DOUBLE(size,d) | Große Zahlen mit einem Gleitkomma. Geben Sie im Parameter size die maximale Anzahl der Anzeigeziffern an. Geben Sie im Parameter d die maximale Anzahl der Ziffern rechts vom Dezimalpunkt an. |
| DECIMAL(size,d) | Ein DOUBLE-Typ, der als String gespeichert wird und einen festen Dezimalpunkt ermöglicht. Geben Sie im Parameter size die maximale Anzahl der Anzeigeziffern an. Geben Sie im Parameter d die maximale Anzahl der Ziffern rechts vom Dezimalpunkt an. |
Hinweis:Die oben genannte size gibt nicht die tatsächliche Länge an, die in der Datenbank gespeichert wird; zum Beispiel bedeutet int(4) nicht, dass nur Zahlen mit einer Länge von 4 Ziffern gespeichert werden können.
Tatsächlich hat int(size) nichts damit zu tun, wie viel Speicherplatz belegt wird. int(3), int(4) und int(8) belegen alle 4 Bytes Speicherplatz auf der Festplatte. Abgesehen von einem geringfügigen Unterschied in der Art und Weise, wie sie dem Benutzer angezeigt werden, ist int(M) dasselbe wie der Datentyp int.
Beispiel:
1. int-Wert 10 (mit angegebenem zerofill)
int(9)显示结果为000000010 int(3)显示结果为010Es ist nur so, dass die angezeigte Länge unterschiedlich ist; sie belegen alle vier Bytes Speicherplatz.
Datumstypen:
| Datentyp | Beschreibung |
|---|---|
| DATE() | Datum. Format: YYYY-MM-DD Hinweis:Der unterstützte Bereich reicht von '1000-01-01' bis '9999-12-31' |
| DATETIME() | *Eine Kombination aus Datum und Uhrzeit. Format: YYYY-MM-DD HH:MM:SS Hinweis:Unterstützter Bereich reicht von '1000-01-01 00:00:00' bis '9999-12-31 23:59:59' |
| TIMESTAMP() | *Zeitstempel. TIMESTAMP-Werte werden anhand der Anzahl der Sekunden seit der Unix-Epoche ('1970-01-01 00:00:00' UTC) gespeichert. Format: YYYY-MM-DD HH:MM:SS Hinweis:Unterstützter Bereich reicht von '1970-01-01 00:00:01' UTC bis '2038-01-09 03:14:07' UTC |
| TIME() | Uhrzeit. Format: HH:MM:SS Hinweis:Unterstützter Bereich reicht von '-838:59:59' bis '838:59:59' |
| YEAR() | Jahr im 2-stelligen oder 4-stelligen Format. Hinweis:Zulässige Werte im 4-stelligen Format: 1901 bis 2155. Zulässige Werte im 2-stelligen Format: 70 bis 69, die 1970 bis 2069 repräsentieren. |
*Obwohl DATETIME und TIMESTAMP dasselbe Format zurückgeben, funktionieren sie sehr unterschiedlich. In INSERT- oder UPDATE-Abfragen setzt TIMESTAMP sich automatisch auf das aktuelle Datum und die aktuelle Uhrzeit. TIMESTAMP akzeptiert außerdem verschiedene Formate wie YYYYMMDDHHMMSS, YYMMDDHHMMSS, YYYYMMDD oder YYMMDD.
SQL Server-Datentypen
Zeichenfolgentypen:
| Datentyp | Beschreibung | Speicher |
|---|---|---|
| char(n) | Zeichenfolgen fester Länge. Bis zu 8,000 Zeichen. | Definierte Breite |
| varchar(n) | Zeichenfolgen variabler Länge. Bis zu 8,000 Zeichen. | 2 Bytes + Anzahl der Zeichen |
| varchar(max) | Zeichenfolgen variabler Länge. Bis zu 1,073,741,824 Zeichen. | 2 Bytes + Anzahl der Zeichen |
| text | Zeichenfolgen variabler Länge. Bis zu 2GB Textdaten. | 4 Bytes + Anzahl der Zeichen |
| nchar | Unicode-Zeichenfolge fester Länge. Bis zu 4,000 Zeichen. | Definierte Breite x 2 |
| nvarchar | Unicode-Zeichenfolge variabler Länge. Bis zu 4,000 Zeichen. | |
| nvarchar(max) | Unicode-Zeichenfolge variabler Länge. Bis zu 536,870,912 Zeichen. | |
| ntext | Unicode-Zeichenfolge variabler Länge. Bis zu 2GB Textdaten. | |
| bit | Erlaubt 0, 1 oder NULL. | |
| binary(n) | Binärzeichenfolge fester Länge. Bis zu 8,000 Bytes. | |
| varbinary | Binärzeichenfolge variabler Länge. Bis zu 8,000 Bytes. | |
| varbinary(max) | Binärzeichenfolge variabler Länge. Bis zu 2GB. | |
| image | Binärzeichenfolge variabler Länge. Bis zu 2GB. |
Zahlentypen:
| Datentyp | Beschreibung | Speicher |
|---|---|---|
| tinyint | Erlaubt alle Zahlen von 0 bis 255. | 1 Byte |
| smallint | Erlaubt alle Zahlen zwischen -32,768 und 32,767. | 2 Byte |
| int | Erlaubt alle Zahlen zwischen -2,147,483,648 und 2,147,483,647. | 4 Byte |
| bigint | Erlaubt alle Zahlen zwischen -9,223,372,036,854,775,808 und 9,223,372,036,854,775,807. | 8 Bytes |
| decimal(p,s) | Zahlen mit fester Genauigkeit und Skala. Erlaubt Zahlen zwischen -10^38 + 1 und 10^38 - 1. Der Parameter p gibt die maximale Anzahl von Ziffern an, die gespeichert werden können (links und rechts vom Dezimalpunkt). p muss ein Wert von 1 bis 38 sein. Standard ist 18. Der Parameter s gibt die maximale Anzahl von Ziffern an, die rechts vom Dezimaltrennzeichen gespeichert werden. s muss einen Wert von 0 bis p haben. Standard ist 0. |
5-17 Bytes |
| numeric(p,s) | Zahlen mit fester Genauigkeit und Skala. Erlaubt Zahlen zwischen -10^38 + 1 und 10^38 - 1. Der Parameter p gibt die maximale Anzahl von Ziffern an, die gespeichert werden können (links und rechts vom Dezimalpunkt). p muss ein Wert von 1 bis 38 sein. Standard ist 18. Der Parameter s gibt die maximale Anzahl von Ziffern an, die rechts vom Dezimaltrennzeichen gespeichert werden. s muss einen Wert von 0 bis p haben. Standard ist 0. |
5-17 Bytes |
| smallmoney | Währungsdaten zwischen -214,748.3648 und 214,748.3647. | 4 Byte |
| money | Währungsdaten zwischen -922,337,203,685,477.5808 und 922,337,203,685,477.5807. | 8 Bytes |
| float(n) | Gleitkommazahlen-Daten von -1.79E + 308 bis 1.79E + 308. Der Parameter n gibt an, ob das Feld 4 Bytes oder 8 Bytes speichert. float(24) speichert 4 Bytes, während float(53) 8 Bytes speichert. Der Standardwert von n ist 53. |
4 oder 8 Bytes |
| real | Gleitkommazahlen-Daten von -3.40E + 38 bis 3.40E + 38. | 4 Byte |
Datumstypen:
| Datentyp | Beschreibung | Speicher |
|---|---|---|
| datetime | Vom 1. Januar 1753 bis zum 31. Dezember 9999 mit einer Genauigkeit von 3.33 Millisekunden. | 8 Bytes |
| datetime2 | Vom 1. Januar 1753 bis zum 31. Dezember 9999, mit einer Genauigkeit von 100 Nanosekunden. | 6-8 Bytes |
| smalldatetime | Vom 1. Januar 1900 bis zum 6. Juni 2079, mit einer Genauigkeit von 1 Minute. | 4 Byte |
| date | Speichert nur das Datum. Vom 1. Januar 0001 bis zum 31. Dezember 9999. | 3 Bytes |
| time | Speichert nur die Uhrzeit. Genauigkeit von 100 Nanosekunden. | 3-5 Bytes |
| datetimeoffset | Wie datetime2, plus ein Zeitzonenoffset. | 8-10 Bytes |
| timestamp | Speichert eine eindeutige Zahl, die aktualisiert wird, sobald eine Zeile erstellt oder geändert wird. Der timestamp-Wert basiert auf einer internen Uhr und entspricht nicht der realen Zeit. Jede Tabelle kann nur eine timestamp-Variable haben. |
Weitere Datentypen:
| Datentyp | Beschreibung |
|---|---|
| sql_variant | Speichert bis zu 8,000 Bytes an Daten unterschiedlicher Datentypen, außer text, ntext und timestamp. |
| uniqueidentifier | Speichert einen global eindeutigen Bezeichner (GUID). |
| xml | Speichert XML-formatierte Daten. Bis zu 2GB. |
| cursor | Speichert einen Verweis auf einen Zeiger, der für Datenbankoperationen verwendet wird. |
| table | Speichert eine Ergebnismenge für die spätere Verarbeitung. |