English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

MySQL Datentypen

Die Definition der Datentypen für Datenfelder in MySQL ist für die Optimierung Ihrer Datenbank sehr wichtig.

MySQL unterstützt mehrere Typen, die grob in drei Kategorien unterteilt werden können: numerisch, Daten/Zeit und Zeichenketten (Zeichen) Typen.

Numerische Typen

MySQL unterstützt alle Standard-SQL-Numerikdatentypen.

Diese Typen umfassen strikte numerische Datentypen (INTEGER, SMALLINT, DECIMAL und NUMERIC) sowie approximate numerische Datentypen (FLOAT, REAL und DOUBLE PRECISION).

Das Schlüsselwort INT ist ein Synonym für INTEGER, das Schlüsselwort DEC ist ein Synonym für DECIMAL.

Der BIT-Datentyp speichert Wertefelder für Bit-Felder und unterstützt MyISAM, MEMORY, InnoDB und BDB-Tabellen.

Als Erweiterung des SQL-Standards unterstützt MySQL auch die Ganzzahltypen TINYINT, MEDIUMINT und BIGINT. Der nachstehende Tisch zeigt die Speicher- und Wertbereiche der erforderlichen jedem Ganzzahltypen.

TypGrößeBereich (signiert)Bereich (unsigniert)Verwendungszweck
TINYINT1 byte(-128,127)(0,255)Kleiner Ganzzahlwert
SMALLINT2 bytes(-32 768,32 767)(0,65 535)Großer Ganzzahlwert
MEDIUMINT3  bytes(-8 388 608,8 388 607)(0,16 777 215)Großer Ganzzahlwert
INT oder INTEGER4  bytes(-2 147 483 648,2 147 483 647)(0,4 294 967 295)Großer Ganzzahlwert
BIGINT8  bytes(-9,223,372,036,854,775,808,9 223 372 036 854 775 807)(0,18 446 744 073 709 551 615)Extrem großer Ganzzahlwert
FLOAT4  bytes(-3.402 823 466 E+38,-1.175 494 351 E-38) 0, (1.175 494 351 E-38,3.402 823 466 351 E+38)0, (1.175 494 351 E-38,3.402 823 466 E+38)Einzelne Genauigkeit
Fließkommazahlen
DOUBLE8  bytes(-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308) 0, (2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)0, (2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)Doppelte Genauigkeit
Fließkommazahlen
DECIMALFür DECIMAL(M,D), wenn M>D, ist es M+2sonst von D+2abhängig von den Werten von M und Dabhängig von den Werten von M und DFließkommazahlen

Datums- und Zeittypen

Datums- und Zeittypen, die Zeitwerte darstellen, sind DATETIME, DATE, TIMESTAMP, TIME und YEAR.

Jeder Zeittyp hat einen gültigen Wertebereich und einen "Null"-Wert. Wenn ein ungültiger Wert angegeben wird, der MySQL nicht darstellen kann, wird der "Null"-Wert verwendet.

Der TIMESTAMP-Typ hat eine spezielle Eigenschaft zur automatischen Aktualisierung, die später beschrieben wird.

TypGröße
(Bytes)
BereichFormatVerwendungszweck
DATE31000-01-01/9999-12-31YYYY-MM-DDDatumswert
TIME3'-838:59:59'/'838:59:59'HH:MM:SSZeitwert oder Zeitspanne
YEAR11901/2155YYYYWert des Jahres
DATETIME81000-01-01 00:00:00/9999-12-31 23:59:59YYYY-MM-DD HH:MM:SSGemischte Datum- und Zeitwerte
TIMESTAMP4

1970-01-01 00:00:00/2038

Endzeit ist der 2147483647 Sekunden, Beijing Time 2038-1-19 11:14:07, Greenwich Mean Time 2038Jahr1Monat19Tag Mitternacht 03:14:07

YYYYMMDD HHMMSSGemischte Datum- und Zeitwerte, Zeitstempel

Zeichenkettenarten

Zeichenkettenarten sind CHAR, VARCHAR, BINARY, VARBINARY, BLOB, TEXT, ENUM und SET. Dieser Abschnitt beschreibt, wie diese Typen funktionieren und wie sie in Abfragen verwendet werden.

TypGrößeVerwendungszweck
CHAR0-255 bytesFester String
VARCHAR0-65535 bytesVariabler String
TINYBLOB0-255 bytesNicht länger als 255 Binärische Zeichenkette aus einem Zeichen
TINYTEXT0-255 bytesKurze Textzeichenkette
BLOB0-65 535 bytesBinäre Form der langen Textdaten
TEXT0-65 535 bytesLange Textdaten
MEDIUMBLOB0-16 777 215 bytesBinäre Form der Textdaten mittlerer Länge
MEDIUMTEXT0-16 777 215 bytesTextdaten mittlerer Länge
LONGBLOB0-4 294 967 295 bytessehr großer Textdaten in binärem Format
LONGTEXT0-4 294 967 295 bytessehr großer Textdaten

Beachten Sie: char(n) und varchar(n) im Brackets n stellt die Anzahl der Zeichen dar und nicht die Anzahl der Bytes, zum Beispiel CHAR(30) kann gespeichert werden 30 Zeichen.

CHAR und VARCHAR Typen sind ähnlich, aber sie speichern und abrufen Daten auf unterschiedliche Weise. Ihre maximale Länge und ob Leerzeichen am Ende erhalten werden, sind unterschiedlich. Es wird während des Speicherungs- oder Abrufvorgangs keine Gross- und Kleinschreibungskonvertierung durchgeführt.

BINARY und VARBINARY sind ähnlich wie CHAR und VARCHAR, unterscheiden sich jedoch darin, dass sie binäre Strings enthalten und keine nicht-binären Strings. Dies bedeutet, dass sie Byte-Strings enthalten und nicht Zeichen-Strings. Dies zeigt, dass sie keine Zeichensatzkonfiguration haben und die Sortierung und der Vergleich auf numerischen Werten der Byte-Werte der Spaltenwerte basieren.

BLOB ist ein binärer Grossobjekt, der eine variable Anzahl von Daten aufnehmen kann. Es gibt 4 Es gibt verschiedene BLOB-Typen: TINYBLOB, BLOB, MEDIUMBLOB und LONGBLOB. Der Unterschied liegt in der verschiedenen Speichergröße, die sie aufnehmen können.

Es gibt 4 Es gibt verschiedene TEXT-Typen: TINYTEXT, TEXT, MEDIUMTEXT und LONGTEXT. Entsprechend diesen 4 Es gibt verschiedene BLOB-Typen, deren maximale Speicherlänge unterschiedlich ist und je nach实际情况 gewählt werden kann.