English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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.
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.
Typ | Größe | Bereich (signiert) | Bereich (unsigniert) | Verwendungszweck |
---|---|---|---|---|
TINYINT | 1 byte | (-128,127) | (0,255) | Kleiner Ganzzahlwert |
SMALLINT | 2 bytes | (-32 768,32 767) | (0,65 535) | Großer Ganzzahlwert |
MEDIUMINT | 3 bytes | (-8 388 608,8 388 607) | (0,16 777 215) | Großer Ganzzahlwert |
INT oder INTEGER | 4 bytes | (-2 147 483 648,2 147 483 647) | (0,4 294 967 295) | Großer Ganzzahlwert |
BIGINT | 8 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 |
FLOAT | 4 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 |
DOUBLE | 8 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 |
DECIMAL | Für DECIMAL(M,D), wenn M>D, ist es M+2sonst von D+2 | abhängig von den Werten von M und D | abhängig von den Werten von M und D | Fließkommazahlen |
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.
Typ | Größe (Bytes) | Bereich | Format | Verwendungszweck |
---|---|---|---|---|
DATE | 3 | 1000-01-01/9999-12-31 | YYYY-MM-DD | Datumswert |
TIME | 3 | '-838:59:59'/'838:59:59' | HH:MM:SS | Zeitwert oder Zeitspanne |
YEAR | 1 | 1901/2155 | YYYY | Wert des Jahres |
DATETIME | 8 | 1000-01-01 00:00:00/9999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS | Gemischte Datum- und Zeitwerte |
TIMESTAMP | 4 | 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 HHMMSS | Gemischte Datum- und Zeitwerte, Zeitstempel |
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.
Typ | Größe | Verwendungszweck |
---|---|---|
CHAR | 0-255 bytes | Fester String |
VARCHAR | 0-65535 bytes | Variabler String |
TINYBLOB | 0-255 bytes | Nicht länger als 255 Binärische Zeichenkette aus einem Zeichen |
TINYTEXT | 0-255 bytes | Kurze Textzeichenkette |
BLOB | 0-65 535 bytes | Binäre Form der langen Textdaten |
TEXT | 0-65 535 bytes | Lange Textdaten |
MEDIUMBLOB | 0-16 777 215 bytes | Binäre Form der Textdaten mittlerer Länge |
MEDIUMTEXT | 0-16 777 215 bytes | Textdaten mittlerer Länge |
LONGBLOB | 0-4 294 967 295 bytes | sehr großer Textdaten in binärem Format |
LONGTEXT | 0-4 294 967 295 bytes | sehr 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.