Beim Erstellen einer Tabelle in einer Datenbank sollte diese sowohl einen Namen als auch einen Datentyp haben. Der Datentyp einer Spalte definiert die Werte, die die Spalte enthält, z. B. Ganzzahl, Geld, Binär, Zeichen, Datum und Uhrzeit. Daher ist es die Aufgabe eines Entwicklers, beim Erstellen von Datenbanken und Tabellen festzulegen, welche Datentypen in jeder Spalte gespeichert werden.
Einfach ausgedrückt sind Datentypen Richtlinien, die SQL dabei helfen, zu verstehen, welche Art von Daten in einer Spalte erforderlich ist. Es ist auch effizient bei der Identifizierung, wie SQL mit den gespeicherten Daten interagiert.
Zu beachten ist, dass Datentypen in verschiedenen Datenbanken unterschiedliche Namen haben können, und in Fällen, in denen die Namen gleich sind, andere Aspekte und Details, wie z. B. die Größe, unterschiedlich sind. Daher wird empfohlen, dass Sie sich immer auf die Dokumentation beziehen, wenn Sie auf ähnliche Fälle stoßen.
Die folgenden Merkmale können Datentypen in MySQL identifizieren:
- Die Werte indexierbarer und nicht indexierbarer Datentypen
- Die Art der Werte, die sie darstellen
- Der Platz, den sie belegen, unabhängig davon, ob die Werte variable oder feste Länge haben
- Wie MySQL im Vergleich zu den verschiedenen Werten bestimmter Datentypen abschneidet
Bevor wir in die MySQL-Datentypen eintauchen und sie behandeln, ist es wichtig, die Konventionen zu lernen und zu verstehen, die von den Datentypbeschreibungen verwendet werden, wie unten hervorgehoben:
- (M ):Gibt bei Integer-Typen die maximale Breite an, die der Datentyp anzeigen kann.
:Gibt die Gesamtzahl der Stellen an, die für Festkomma- und Gleitkommatypen gespeichert werden können.
:Für String-Typen zeigt es die maximale Länge
Hinweis:M Der maximal zulässige Wert von hängt vom Datentyp ab
• (D ):Gilt nur für Festkommatypen und Gleitkommatypen. Es gibt die Skala an (die Anzahl der Stellen, die dem Dezimalpunkt folgen). Der maximal mögliche Wert ist 10, wobei er nicht signifikanter als M sein sollte -2
• Die eckigen Klammern ([und]) zeigen optionale Teile des Definitionstyps.
• f sp: diese Konvention gilt für die Typen timestamp, DateTime und time. Es stellt die Sekundenbruchteilgenauigkeit dar (die Anzahl der Ziffern, die dem Dezimalkomma für Sekundenbruchteile folgen). Das angegebene fsp Der Wert muss zwischen 0 und 6 liegen. Der Wert 0 bedeutet, dass der angegebene Wert keine Bruchteile enthält. In Fällen, in denen der Wert jedoch weggelassen wird, wird die Genauigkeit als 0 bezeichnet.
In MySQL gibt es drei Hauptkategorien von Datentypen, die Unterkategorien enthalten. Die primären Datentypen sind:
- String-Datentypen
- Datums- und Zeitdatentypen.
- Numerische Datentypen
Es gibt noch andere Datentypen, die von MySQL unterstützt werden, z. B. räumliche Datentypen und JSON-Datentypen.
Dieser Artikel soll alle oben genannten Datentypen umfassend abdecken. Um ein klares Verständnis der Datentypen zu erhalten, sollten Sie sich daher an diesen Artikel halten.
String-Datentypen
Die String-Datentypen werden hauptsächlich verwendet, um Binärdaten und Klartext wie Bilder und Dateien zu speichern. Darüber hinaus bietet MYSQL die Möglichkeit, Zeichenfolgenwerte basierend auf übereinstimmenden Mustern, wie z. B. regulären Ausdrücken und Operatoren, zu vergleichen und zu durchsuchen.
Nachfolgend finden Sie eine detaillierte Darstellung aller String-Datentypen, die MySQL unterstützt:
CHAR ( Größe ): Dies ist die feste Länge einer Zeichenkette. Es kann entweder Buchstaben, Sonderzeichen oder Zahlen enthalten. Der Parameter Größe gibt die Länge der Spalte in Zeichen an und kann zwischen 0 und 255 liegen. Die Standardgröße ist 1.
VARCHAR ( Größe ): Dies ist die variable Länge eines Strings. Es enthält entweder Zahlen, Sonderzeichen oder Buchstaben. Der Parameter Größe zeigt die maximale Länge der Spalte in Zeichen an und kann zwischen 0 und 65535 liegen.
BINÄR ( Größe ): Diese sind gleich CHAR () und speichern nur binäre Byte-Strings. Der Parameter Größe gibt die Länge der Spalte in Bytes an. Der Standardwert ist 1
VARBINARY ( Größe ): Dies entspricht VARCHAR (), nur dass es binäre Byte-Strings speichert. Der ParameterGröße gibt die maximale Länge der Spalte in Bytes an.
TINYTEXT: Enthält Zeichenfolgen mit einer maximalen Länge von 255 Zeichen.
TEXT ( Größe ): Enthält Zeichenfolgen mit einer maximalen Länge von 65.535 Byte.
BLOB ( Größe ): Für Binary Large Objects (BLOBs). Sie enthalten bis zu 65.535 Datenbytes.
TINYBLOB: Für Binary Large Objects (BLOBs). Es enthält eine maximale Länge von 255 Bytes.
LONGLOB: Für Binary Large Objects (BLOBs). Sie fassen bis zu 4.294.967.295 Datenbytes.
LONGTEXT: Enthält Zeichenfolgen mit einer maximalen Länge von 4.294.967.295 Zeichen.
MEDIUMTEXT: Enthält Zeichenfolgen mit einer maximalen Länge von 16.777.215 Zeichen.
MEDIUMBLOB: Für Binary Large Objects (BLOBs). Sie fassen bis zu 16.777.215 Datenbytes.
EINSTELLEN ( Wert1, Wert2, Wert3, … ): Dies ist ein String-Objekt, das mehr als einen Wert enthält (Strings, die 0 oder mehr Werte enthalten). Sie werden genau wie ENUM aus einer Liste möglicher Werte ausgewählt. In einer SET-Liste können Sie jedoch nur bis zu 64 Werte auflisten.
ENUM ( Wert1, Wert2, Wert3, … ): Dies ist ein Zeichenfolgenobjekt, das nur einen Wert enthalten kann, der aus einer Liste aller möglichen Werte ausgewählt wird. In einer ENUM-Liste können Sie bis zu 65535 Werte auflisten. Wenn ein Wert eingefügt wird, der nicht in der Liste enthalten ist, bleibt der eingefügte Wert leer. Beachten Sie außerdem, dass die Werte in der Reihenfolge sortiert werden, in der der Benutzer sie eingegeben hat.
Datums- und Zeitdatentypen
Die Datums- und Zeitdatentypen geben die zeitlichen Werte wie DateTime, timestamp, year, time und date an. Jeder der erwähnten zeitlichen Typen hat Werte, die null einschließen. Immer wenn ein ungültiger Wert eingefügt wird, kann MySQL ihn nicht darstellen. Daher wird für eine Null entschieden.
Nachfolgend finden Sie eine umfassende Darstellung der von MySQL unterstützten Datums- und Zeitdatentypen:
DATUM: Das Standarddatumsformat ist Jahre, Monate bzw. Tage (JJJJ-MM-TT), und der unterstützte Bereich ist „1000-01-01“ bis „9999-12-31“.
DATETIME ( fsp ): Dies ist die Kombination aus Datum und Uhrzeit. Das Standardformat ist in diesem Fall Jahre, Monate, Tage, Stunden, Minuten bzw. Sekunden (JJJJ-MM-TT hh:mm:ss)
Hinweis: Das Hinzufügen von DEFAULT und ON UPDATE in einer Spalte ist wichtig, um die automatische Initialisierung zu starten, und aktualisiert die aktuelle Uhrzeit und das aktuelle Datum.
ZEITSTEMPEL ( fsp ): Seit der Unix-Epoche werden Zeitstempelwerte als Anzahl von Sekunden gespeichert, z. B. ('1970-01-01 00;00;00' UTC). Das Standardformat ist Jahre, Monate, Tage, Stunden, Minuten bzw. Sekunden (JJJJ-MM-TT hh:mm:ss), während der unterstützte Bereich zwischen '('1970-01-01 00;00;01' UTC liegt bis ('2038-01-09 03;14;07' UTC. DEFAULT_CURRENT_TIMESTAMP und ON UPDATE CURRENT_TIMESTAMP sind entscheidend für die automatische Initialisierung und Aktualisierung des aktuellen Datums und der aktuellen Uhrzeit.
ZEIT ( fsp ): Das standardmäßig unterstützte Zeitformat ist Stunden, Minuten bzw. Sekunden (hh:mm:ss), und der unterstützte Bereich ist „-838:59:59“ bis „838:59:59“.
JAHR: Ein Jahr wird in einem vierstelligen Format dargestellt – die zulässigen Werte im vierstelligen Format reichen von 1902 bis 2155 und 0000.
Hinweis: Die neueste Version von MySQL (8.0) unterstützt das zweistellige Jahresformat nicht.
Numerische Datentypen
Zu den numerischen Datentypen gehören alle genauen numerischen Datentypen wie Ganzzahlen, Dezimalzahlen und Zahlen. Es enthält auch die ungefähren numerischen Datentypen wie Float, Double, Double Precision und Real. Numerische Datentypen speichern Bitwerte, da sie die BIT-Datentypen unterstützen. Normalerweise werden numerische Datentypen in MySQL in zwei Kategorien unterteilt:Datentypen mit Vorzeichen und Datentypen ohne Vorzeichen; Dies ist jedoch eine Ausnahme von Bit-Datentypen.
Nachfolgend finden Sie eine detaillierte Abbildung mit allen von MySQL unterstützten numerischen Datentypen und deren Beschreibung:
BIT ( Größe ): Dies ist ein Bitwerttyp, bei dem die Anzahl der Bits pro Wert in Form von Größe angegeben wird . Der Parameter Größe hat die Fähigkeit, Werte von 1 bis 64 aufzunehmen, und sein Standardwert für die Größe ist 1.
TINYINT ( Größe ): Dies ist eine sehr kleine Ganzzahl, deren vorzeichenbehafteter Bereich von -128 bis 127 reicht, während ihr vorzeichenloser Bereich von 0 bis 255 reicht. Der Parameter size bezeichnet die maximal anzuzeigende Breite, die etwa 255.
beträgtBOOLEAN: Es ist gleich einem BOOL
BOOL: In einem BOOL werden die Nicht-Null-Werte als wahr angesehen. Gleichzeitig werden die Nullwerte als falsch angesehen.
INT ( Größe ): Dies ist eine mittlere Ganzzahl, deren vorzeichenbehafteter Bereich von -2147483648 bis 2147483647 reicht, während der vorzeichenlose Bereich von 0 bis 4294967295 reicht. Der Parameter size gibt die maximal anzuzeigende Breite an, die etwa 255.
beträgtMEDIUMINT ( Größe ): Dies ist auch eine mittlere Ganzzahl, deren vorzeichenbehafteter Bereich von -32768 bis 32767 reicht, während ihr vorzeichenloser Bereich von 0 bis 65535 reicht. Der ParameterGröße gibt die maximal anzuzeigende Breite an, die etwa 255.
beträgtSMALLINT ( Größe ): Dies ist eine kleine Ganzzahl, deren vorzeichenbehafteter Bereich zwischen -32768 und 32767 liegt, während der vorzeichenlose Bereich zwischen 0 und 16777215 liegt. Die Größe Der Parameter wird in diesem Fall verwendet, um die maximale Anzeigebreite anzugeben, deren Bereich etwa 255 beträgt.
FLOAT ( Größe, d ): Es ist eine Fließkommazahl, deren Gesamtzahl der Stellen in der Größe angegeben wird. Das d Parameter hilft bei der Angabe der Anzahl der Nachkommastellen.
Hinweis: Dieser Parameter ist in MySQL-Version 8.0.17 veraltet. Daher wird es in zukünftigen Versionen von MySQL nicht reproduziert.
Ganzzahl ( Größe ): Dies entspricht einem INT (size ).
FLOAT( p ): Es ist eine Fließkommazahl. Das P Der Parameter wird verwendet, um zu bestimmen, ob ein FLOAT oder ein DOUBLE in einem resultierenden Datentyp verwendet wird. Wenn dasP -Wert reicht von 0 bis 24, die Daten werden als FLOAT () bezeichnet. Wenn das P -Wert reicht von 25 bis 53, dann ändert sich der Datentyp zu einem DOUBLE ().
DEZ ( Größe, d ): Dies ist das Äquivalent zu DECIMAL (size, d )
DOPPELT ( Größe, d ): Dies bezeichnet eine Standard-Größe Fließkommazahl, deren Gesamtzahl der Stellen in Größe angegeben ist. Das d Parameter hilft bei der Angabe der Anzahl der Nachkommastellen.
DEZIMAL ( Größe, d ): Es handelt sich um eine exakte Festkommazahl, deren Gesamtziffernzahl durch Größe angegeben wird . Das d Der Parameter gibt die Anzahl der Nachkommastellen an. Die maximale Größe Zahl ist 65, während das d maximale Anzahl ist 30. Daher ist der Standardwert für d ist 0, während der Standardwert für Größe ist 10.
Hinweis: alle numerischen Typen enthalten zusätzliche Optionen; ZEROFILL und UNSIGNED. Wenn die Option UNSIGNED hinzugefügt wird, lässt MySQL die negativen Werte in der Spalte nicht zu. Wenn andererseits die Option ZEROFILL hinzugefügt wird, fügt MySQL automatisch das UNSIGNED-Attribut zu dieser Spalte hinzu.
Andere Datentypen
Boolescher Datentyp
Der kleinste Integer-Typ TINYINT (1) wird verwendet, um boolesche Werte in MySQL darzustellen, da MySQL keinen eingebauten BOOL- oder BOOLEAN-Datentyp enthält. Wenn Sie also mit BOOLs und BOOLEANs arbeiten, sollten Sie diese mit TINYINT (1) gleichsetzen.
Räumlicher Datentyp
MySQL bietet Unterstützung für mehrere räumliche Datentypen, die verschiedene Arten von geografischen und geometrischen Werten haben, wie unten angegeben:
GEOMETRIE: Dies ist ein Aggregat oder Punkt, der den räumlichen Wert eines beliebigen Typs enthalten kann, solange er einen Standort hat.
POLYGON: Dies ist eine ebene Fläche, die durch eine mehrseitige Geometrie dargestellt wird. Es kann entweder durch null oder nur eine äußere und mehrere innere Begrenzungen definiert werden.
MULTILINESTRING: Dies ist eine Geometrie mit mehreren Kurven, die eine Sammlung von LINESTRING-Werten enthält.
MULTIPOLYGON: Dies ist ein Objekt mit mehreren Oberflächen, das durch eine Sammlung mehrerer Polygonelemente dargestellt wird, und es ist eine zweidimensionale Geometrie
PUNKT: Dies ist ein Punkt oder ein Paar, das die X- und Y-Koordinaten enthält. Es kann gesagt werden, dass es sich um einen Punkt in einer Geometrie handelt, der einen einzelnen Ort darstellt.
GEOMETRYSAMMLUNG: Dies ist eine Sammlung von GEOMETRY-Werten
LINESTRING: Dies ist eine Kurve, die einen oder mehrere Punktwerte enthält. In Fällen, in denen eine Linienfolge nur zwei Punkte enthält, bedeutet dies, dass sie eine Linie darstellt.
MULTIPUNKT: Dies ist eine Sammlung von POINT-Werten, wobei der Punkt nicht geordnet oder in irgendeiner Weise verbunden werden kann.
JSON-Datentyp
MYSQL unterstützt den nativen JSON-Datentyp seit der Einführung von Version 5.7.8, was die Speicherung und Verwaltung von JSON-Dokumenten sehr schnell und effektiv ermöglichte. Darüber hinaus ist der native JSON-Datentyp für die Bereitstellung eines optimalen Speicherformats und die automatische Validierung von JSON-Dokumenten verantwortlich.
Schlussfolgerung
Dieser Artikel hat umfassend alle Aspekte zu MySQL-Datentypen behandelt, die Ihnen dabei helfen, zu verstehen, welche Datentypen verwendet werden sollten und wie sie verwendet werden sollten. Wir glauben, dass der Artikel auch dazu beitragen wird, Ihr Wissen über MySQL zu verbessern.