Einführung
MySQL-Datentypen sind wichtig zu verstehen, bevor Sie mit dem Erstellen und Arbeiten mit einer MySQL-Datenbank beginnen. Wenn Sie jede Spalte richtig zuweisen, stellen Sie sicher, dass die Datenbank optimiert und Daten sicher gespeichert werden.
In diesem Tutorial lernen Sie die verschiedenen MySQL-Datentypen kennen.
Was sind Datentypen in MySQL?
Ein Name und ein Datentyp definieren jede Spalte in einer Datenbanktabelle. Der angegebene Datentyp teilt MySQL mit, welche Art von Werten gespeichert werden, wie viel Speicherplatz sie benötigen und welche Art von Operationen es mit diesem Datentyp ausführen kann.
MySQL-Datentypen
Es gibt viele verschiedene Datentypen, die Sie in einer MySQL-Tabelle speichern können.
Sie sind in fünf Hauptkategorien eingeteilt:
- Numerische Datentypen
- Datentypen für Datum und Uhrzeit
- String-Datentypen
- Räumliche Datentypen
- JSON-Datentypen
Lesen Sie weiter, um mehr über die einzelnen Gruppen zu erfahren und zu sehen, welche Datentypen sie enthalten.
Numerische Datentypen
Verwenden Sie beim Speichern von Zahlen in einer Datenbankspalte einen der numerischen Datentypen. MySQL unterstützt sowohl exakte als auch ungefähre numerische Datentypen.
Die numerische Kategorie wird weiter in die folgenden Gruppen unterteilt:
- Integer-Datentypen
- Fließkomma-Datentypen
- Festkomma-Datentypen
- Bit-Wert-Datentypen
Integer-Typen
Integer-Datentypen werden für ganze Zahlen (Integer) verwendet. Sie umfassen sowohl positive als auch negative Werte. Sie verarbeiten jedoch keine Bruchzahlen.
Daher können Zahlen wie 30 und -5435 als ganzzahlige Datentypen gespeichert werden, während 5,3 oder 1/5 dies nicht können.
Ganzzahltypen sind vorzeichenbehaftet oder vorzeichenlos. Sie werden basierend auf ihrer Größe weiter unterteilt, wobei sie sich durch ihre Länge und Reichweite unterscheiden.
Byte | Bereich (unsigned) | Bereich (vorzeichenbehaftet) | |
---|---|---|---|
TINYINT | 1 | von 0 bis 255 | von -128 bis 127 |
SMALLINT | 2 | von 0 bis 65535 | von -32768 bis 32767 |
MEDIUMINT | 3 | von 0 bis 16777215 | von -8388608 bis 8388607 |
INT | 4 | von 0 bis 4294967295 | von -2147483648 bis 2147483647 |
GROSS | 8 | von 0 bis 18446744073709551615 | von -9223372036854775808 bis 9223372036854775807 |
TINYINT
ist eine sehr kleine Ganzzahl, die 1 Byte verwendet der Lagerung. Sie besteht aus bis zu 4 Ziffern . Sein vorzeichenloser Bereich reicht von 0 bis 255 . Wenn es signiert ist, hat es einen Bereich von -128 bis 127 .
SMALLINT
ist eine kleine Ganzzahl, die 2 Bytes verwendet der Lagerung. Sie besteht aus bis zu 5 Ziffern . Sein vorzeichenloser Bereich reicht von 0 bis 65535 . Wenn es signiert ist, hat es einen Bereich von -32768 bis 32767 .
MEDIUMINT
ist eine mittelgroße Ganzzahl, die 3 Bytes verwendet der Lagerung. Es hat bis zu 9 Stellen . Wenn es nicht signiert ist, hat es einen Bereich von 0 bis 16777215 . Signiert, sein Mindestwert ist -8388608 , während sein Maximalwert 8388607 ist .
INT
ist eine ganze Zahl, die 4 Bytes verwendet der Lagerung. Es verwendet bis zu 11 Ziffern . Wenn es nicht signiert ist, reicht es von 0 an 4294967295 . Wenn es signiert ist, hat es den Bereich von -2147483648 an 2147483647 .
BIGINT
ist eine große Ganzzahl, die 8 Bytes verwendet der Lagerung. Es hat bis zu 20 Stellen . Sein minimaler vorzeichenbehafteter Wert ist 0 , während sein maximaler vorzeichenbehafteter Wert 18446744073709551615 ist . Wenn es signiert ist, hat es den Bereich von -9223372036854775808 an 9223372036854775807 .
Gleitkommatypen
Numerische Fließkomma-Datentypen sind rationale Zahlen, die zur Darstellung von Näherungswerten verwendet werden. Verwenden Sie Fließkomma-Datentypen für hochpräzise Berechnungen.
Zu den Fließkommatypen gehören:
FLOAT
stellt Werte mit einfacher Genauigkeit dar, die 4 Bytes verwenden und umfassen bis zu 6 oder 7 signifikante Ziffern.DOUBLE
stellen Werte mit doppelter Genauigkeit dar, die 8 Bytes verwenden und umfassen bis zu 15 oder 16 signifikante Ziffern.
Die grundlegende Syntax zum Definieren von FLOAT
/DOUBLE
Datentypen ist FLOAT(M,D)
/DOUBLE(M,D)
.
M
stellt die Gesamtzahl der Ziffern dar, während D
ist die Anzahl der Dezimalstellen. Zum Beispiel der Wert 5143.234 würde als 7,3 definiert werden da es insgesamt 7 Stellen und 3 Stellen nach dem Komma hat.
Sie können auch FLOAT(P)
verwenden Syntax, um einen Fließkommadatentyp anzugeben, wobei P
gibt die Genauigkeit an. Wenn P
hat einen Wert von 0 bis 23 , ist es eine Spalte mit einfacher Genauigkeit. Wenn die Genauigkeit zwischen 24 und 53 liegt , es ist eine Spalte mit doppelter Genauigkeit.
Bytes | Bereich (unsigned) | Bereich (vorzeichenbehaftet) | |
---|---|---|---|
FLOAT | 4 | von 1.175494351E-38 bis 3.402823466E+38 | von -3.402823466E+38 bis -1.175494351E-38 |
DOPPELT | 8 | von 0 und 2.22507385850720 14E- 308 bis 1.797693134862315 7E+ 308 | von -1.7976931348623 157E+ 308 bis -2.22507385850720 14E- 308 |
Festkommatypen
Um exakte numerische Werte zu speichern, verwenden Sie den Festkomma-Datentyp – DECIMAL
. Da es sich um eine genaue Zahl handelt, wird dieser Datentyp hauptsächlich für Daten verwendet, die auf genauen Werten beruhen (z. B. monetäre Daten).
Die grundlegende Syntax ist DECIMAL(P,D)
, wobei P
steht für Präzision (die Anzahl signifikanter Stellen) und D
steht für Skala (die Anzahl der Nachkommastellen).
Die maximale Anzahl von Stellen für die Genauigkeit beträgt 65 , während der maximale Wert für scale 30 ist .
Wenn Sie die Genauigkeit und den Maßstab nicht definieren, verwendet die Spalte Standardwerte. Standardmäßig sind die Werte für P,D 10,0 .
Bitwerttypen
Das BIT
Datentyp speichert binäre Werte. Beim Erstellen einer Spalte, die solche Werte speichert, definieren Sie die Anzahl der Bitwerte im Bereich von 1 bis 64 .
Die Syntax für diesen MySQL-Datentyp ist BIT(N)
. Wenn Sie N
nicht angeben , der Standardwert ist 1 .
Datentypen für Datum und Uhrzeit
Datum und Uhrzeit sind häufig verwendete Datentypen. Ob Sie eine Uhrzeit einer Dateneingabe, ein Geburtsdatum oder den aktuellen Zeitstempel speichern, Sie verwenden eine der folgenden Spalten.
Zu den Datentypen für Datum und Uhrzeit gehören:
DATETIME
,TIMESTAMP
DATE
TIME
YEAR
DATETIME, TIMESTAMP
Verwenden Sie zum Speichern von Datums- und Uhrzeitwerten entweder DATETIME
oder TIMESTAMP
. Beide Datentypen speichern Informationen im YYYY-MM-DD HH:MM:SS Format. Es enthält das y Ohr, m onth, d ja, h unser, m Eingaben und s Sekunden.
Der Hauptunterschied zwischen den beiden ist ihre Reichweite:
DATETIME
Werte reichen von 1000-01-01 00:00:00 bis 9999-12-31 23:59:59 .TIMESTAMP
Werte reichen von 1970-01-01 00:00:01 bis 2038-01-19 03:14:07 .
Sie können für beide Optionen Bruchteile von Sekunden angeben. Geben Sie dazu die Genauigkeit nach der Syntax DATETIME(p)
an /TIMESTAMP(p)
.
Zum Beispiel, um den Zeitstempel 22:53 Uhr am 1. März 2021 zu speichern , mit drei Sekundenbruchteilen, geben Sie den Datentyp TIMESTAMP(3)
an . Der Eintrag wird gespeichert als:2021-03-01 22:53:35.346 .
DATUM
DATE
wird zum Speichern von Datumswerten im Format JJJJ-MM-TT verwendet (Jahr, Monat, Datum).
Der Datentyp unterstützt den Bereich 1000-01-01 bis 9999-12-31 .
ZEIT
TIME
wird verwendet, um Zeitwerte im Format HH-MM-SS zu speichern (Stunden, Minuten, Sekunden) oder HHH-MM-SS . Einträge, die verstrichene Zeit oder Zeitunterschiede anzeigen, werden in einem längeren Format gespeichert und abgerufen (wenn sie mehr Stellen für Stunden benötigen).
Der Datentyp unterstützt den Bereich 1000-01-01 bis 9999-12-31 .
JAHR
YEAR
speichert Jahreswerte im Format YYYY . Es unterstützt Werte im Bereich 1901-2155 .
Während ältere Versionen als MySQL 5.7.5 sowohl 2- als auch 4-stellige Einträge für YEAR
unterstützten , gibt es seit Version 5.7.5 keine zweistellige Unterstützung mehr.
String-Datentypen
Verwenden Sie beim Speichern von Datenstrings einen der String-Datentypen. Sie können Buchstaben, Zahlen, Bilder oder Dateien enthalten.
Dementsprechend gibt es mehrere verschiedene String-Datentypen:
CHAR
undVARCHAR
BINARY
undVARBINARY
BLOB
undTEXT
ENUM
SET
CHAR und VARCHAR
CHAR
und VARCHAR
sind Datentypen, die zum Speichern von nicht-binären Zeichenfolgen verwendet werden. Der Hauptunterschied zwischen den beiden besteht darin, wie sie Daten speichern.
CHAR
speichert Zeichenfolgen fester Länge (bis zu 255 Figuren). Beim Erstellen eines CHAR
Spalte geben Sie die Länge mit CHAR(N)
an Syntax. N
ist die Anzahl der Zeichen, die Sie aufnehmen möchten. Wenn Sie die Länge nicht definieren, wird der Standardwert 1 verwendet .
Diese Werte werden rechts aufgefüllt mit der angegebenen Länge gespeichert. Wenn Sie also ein CHAR(5)
einrichten -Spalte und speichern Sie einen dreistelligen Eintrag darin, es nimmt immer noch fünf Zeichen ein.
VARCHAR
speichert Zeichenfolgen variabler Länge. Während die Länge beim Erstellen einer Spalte definiert werden muss, werden die Werte nicht rechts aufgefüllt. Sie haben eine maximale Grenze, aber die Länge ist nicht festgelegt und variiert je nach Daten.
Zuvor war der Bereich für Einträge von 0 bis 255 . Nach der Veröffentlichung von MySQL 5.0.3 wird VARCHAR
Bereich ist bis zu 65.535 Zeichen .
BINARY und VARBINARY
BINARY
und VARBINARY
Datentypen ähneln dem zuvor erwähnten CHAR
und VARCHAR
. Der Hauptunterschied zwischen diesen beiden Gruppen besteht darin, dass BINARY
und VARBINARY
werden für binäre Zeichenfolgen verwendet.
BINARY
wird für binäre Zeichenfolgen mit fester Länge bis zu 255 Byte verwendet . Die Hauptsyntax zum Definieren einer solchen Spalte ist BINARY(N)
, wobei N
ist die Anzahl der Bytes.
VARBINARY
speichert binäre Zeichenfolgen variabler Länge. MySQL-Version 5.0.3 und neuer speichert bis zu 65.535 Byte .
BLOB und TEXT
Beide BLOB
und TEXT
werden verwendet, um große Datenmengen zu speichern.
BLOB
behandelt B inary L großes O Objekte (d. h. große Sätze binärer Daten wie Bilder, Audio- oder PDF-Dateien).
Es gibt 4 Arten von BLOB-Datentypen, die verwendet werden können, abhängig von der Größe, die Ihre Daten erfordern:
TINYBLOB
(0 – 255; 255 Byte)BLOB
(0 – 65.535; 16 KB)MEDIUMBLOB
(0 – 16.777.215; 16 MB)LONGBLOB
(0 – 4.294.967.295; 4 GB)
TEXT
Datentypen dienen zum Speichern längerer Textfolgen. Je nach benötigter Datenmenge gibt es:
TINYTEXT
(0 – 255; 255 Byte)TEXT
(0 – 65.535; 16 KB)MEDIUMTEXT
(0 – 16.777.215; 16 MB)LONGTEXT
(0 – 4.294.967.295; 4 GB)
ENUM
Die ENUM
Datentyp wird verwendet, um einen der vordefinierten möglichen Werte in einer Spalte zu speichern. Die Spalte kann bis zu 65535 enthalten unterschiedliche Werte.
Beim Erstellen einer ENUM
Tabellenspalte in MySQL geben Sie eine Liste aller zulässigen Werte an.
EINSTELLEN
Wie ENUM
, das SET
Der Datentyp hat eine vordefinierte Liste möglicher Werte, die in der Spalte gespeichert sind.
Der Hauptunterschied zwischen den beiden ist das SET
erlaubt einem Eintrag, mehr als einen Wert zu haben.
Wenn die Spalte beispielsweise als SET('Red','Orange','Yellow','Green')
definiert ist und vier mögliche Werte in der Liste hat, könnte ein Eintrag den Wert ‘Rot’ haben , während ein anderer den Wert ‘Red’,’Yellow’ haben könnte .
Die maximale Anzahl zulässiger Werte ist 64 .
Räumliche Datentypen
Beim Speichern räumlicher Daten können Sie einen der vielen verschiedenen räumlichen Datentypen verwenden, die MySQL unterstützt. Sie werden verwendet, um Informationen über geometrische Formen und den physischen Standort darzustellen.
Wir können sie in zwei Gruppen einteilen:
- Einzelne Geometriewerte
- Sammlungen von Werten
Einzelne Geometriewerte
Einzelne Geometriedatentypen umfassen GEOMETRY
, POINT
, LINESTRING
und POLYGON
.
GEOMETRY
speichert jede Art von Geometrie-/räumlichen Werten.POINT
wird für einen einzelnen Punktwert verwendet.LINESTRING
speichert eine Sammlung mehrerer Punkte, die eine Linie bilden.POLYGON
ist ein Datentyp, der verwendet wird, um eine Sammlung mehrerer Punkte zu speichern, die eine polygonale Oberfläche bilden.
Sammlung von Werten
Zu den Datentypen für Sammlungen von Werten gehört GEOMETRYCOLLECTION
, MULTIPOINT
, MULTILINE
, und MULTIPOLYGON
.
GEOMETRYCOLLECTION
speichert eine Sammlung von geometrischen/räumlichen Werten.MULTIPOINT
wird zum Speichern einer Sammlung von mehreren Punktwerten verwendet.MULTILINE
speichert eine Sammlung mehrerer Zeilen.MULTIPOLYGON
wird für eine Sammlung mehrerer Polygone verwendet.
JSON-Datentypen
Seit Version 5.7.8 enthält MySQL Unterstützung für das native JSON
Datentyp, mit dem Benutzer JSON-Dokumente über eine Datenbank speichern und verwalten können.
MySQL stellt sicher, dass die JSON-Dokumente gültig sind und speichert sie in der JSON-Spalte.