——Anmerkungen aus „MySQL in einfachen Worten (zweite Ausgabe)“ Numerische Typen
Ganzzahltypen Für ganzzahlige Typen unterstützt MySQL die Angabe der Anzeigebreite durch Verwendung von Beispiel: --Erstellen Sie die Tabelle t1 mit zwei Feldern, id1 und id2, und geben Sie die Wertebreiten als int bzw. int(5) an mysql> erstelle Tabelle t1 (id1 int,id2 int(5)); mysql> Beschreibung t1; --Fügen Sie den Wert 1 sowohl in id1 als auch in id2 ein mysql> in t1-Werte einfügen (1,1); mysql> wähle * aus t1; --Fügen Sie den Feldern id1 und id2 jeweils Zerofill-Parameter hinzumysql> alter table t1 modify id1 int zerofill; mysql> Tabelle ändern t1 ID2 ändern int(5) zerofill; Wenn Sie nach dem Festlegen der Breitenbeschränkung einen Wert eingeben, der größer als die Breitenbeschränkung ist, hat dies keine Auswirkungen auf die eingefügten Daten und die Daten werden weiterhin entsprechend der Buchgenauigkeit des Typs gespeichert. An dieser Stelle ist das Breitenformat eigentlich bedeutungslos und es werden links auch keine "0" Zeichen aufgefüllt. --Fügen Sie 1 in ID1 und 12345678 in ID2 der Tabelle t1 ein. mysql> in t1-Werte einfügen (1,12345678); mysql> wähle * aus t1; Alle Integer-Typen haben ein optionales Attribut Darüber hinaus verfügt der Integer-Typ auch über ein eindeutiges Jede Spalte, für die Sie AUTO_INCREMENT verwenden möchten, sollte als NOT NULL und UNIQUE definiert werden. GleitkommatypenZur Darstellung von Dezimalzahlen unterteilt MySQL diese in zwei Typen: Gleitkommazahlen und Festkommazahlen. Zu den Gleitkommazahlen zählen Float (einfache Genauigkeit) und Double (doppelte Genauigkeit), während Festkommazahlen nur über Dezimalstellen verfügen. Festkommazahlen werden in MySQL als Zeichenfolgen gespeichert. Sie sind präziser als Gleitkommazahlen und eignen sich zur Darstellung hochpräziser Daten wie Währungen. Durch das Anhängen von "(M,D)" an den Typnamen können sowohl Gleitkommazahlen als auch Festkommazahlen dargestellt werden. "(M,D)" bedeutet, dass der Wert insgesamt mit M Ziffern und D Dezimalstellen dargestellt wird. Wenn MySQL Gleitkommawerte speichert, rundet es überzählige Ziffern ab. Wenn Sie also 123,006 in float(5,3) einfügen, ist der gespeicherte Wert 123,01. Wenn die Genauigkeit von Float und Double nicht angegeben ist, wird der Standardwert durch die tatsächliche Hardware und das Betriebssystem bestimmt. Wenn Dezimal nicht angegeben ist, sind die Standard-Ganzzahlziffern 10 und die Dezimalziffern 0. Beispiel: --Tabelle tf erstellen, Felder id1, id2, id3 jeweils auf float(5,2), double(5,2) und decimal(5,2) setzen mysql> Tabelle tf erstellen (id1 float(5,2), id2 double(5,2), id3 decimal(5,2)); --Fügen Sie Daten in die drei Felder der Tabelle 1.23 ein mysql> in tf-Werte einfügen (1,23,1,23,1,23); --Fügen Sie die Daten 1234.005 in die Tabelle ein. mysql> in tf-Werte einfügen (1234.005,1234.005,1234.005); --Fügen Sie die Daten 123.005 in die Tabelle ein. mysql> in tf-Werte einfügen (123.005,123.005,123.005); --Fügen Sie die Daten 123.006, 123.006, 123.004 jeweils in die Tabelle ein mysql> in tf-Werte einfügen (123.006,123.006,123.004); --Entfernen Sie die Genauigkeit des TF-Felds der Tabelle und fügen Sie 1,23 erneut ein mysql> Tabelle ändern tf ID1 Float ändern; mysql> Tabelle ändern tf ID2 ändern double; mysql> Tabelle tf ändern, ID3 dezimal ändern; mysql> in tf-Werte einfügen (1,23,1,23,1,23); mysql> Beschreibung tf; --Fügen Sie 1.234567123321,1.234567123321123321,1.23234233 in die Tabelle ein mysql> in tf-Werte einfügen (1,234567123321,1,234567123321123321,1,23234233); Bit-Typ Beim BIT-Typ wird es zum Speichern von Bitfeldwerten verwendet. BIT(M) kann zum Speichern von Binärzahlen mit mehreren Bits verwendet werden. Der Bereich von M reicht von 1 bis 64. Wenn nicht geschrieben, ist der Standardwert 1 Bit. Wenn Sie den Befehl SELECT direkt verwenden, werden die Abfrageergebnisse nicht angezeigt. Sie müssen Beispiel: --Tabelle tb erstellen, Feld id1 als bit(1) und id2 als bit definieren mysql> Tabelle erstellen tb(id1 bit(1),id2 bit); --Füge 1,1 in tb ein mysql> in tb-Werte (1,1) einfügen; mysql> wähle * aus tb; mysql> wähle bin(id1),hex(id2) aus tb; Wenn Daten in ein Bitfeld eingefügt werden, werden sie zunächst in Binärzahlen umgewandelt. Wenn die Anzahl der Bits dies zulässt, werden die Daten erfolgreich eingefügt. Wenn die Anzahl der Bits die definierte Anzahl von Bits überschreitet, werden die Daten nicht eingefügt. ZeittypIn MySQL gibt es viele Datentypen, die zur Darstellung von Datum und Uhrzeit verwendet werden können. In der folgenden Tabelle sind alle in MySQL 5.0 unterstützten Datums- und Uhrzeittypen aufgeführt. |
Datums- und Uhrzeittypen | Byte | Minimum | Maximal |
---|---|---|---|
DATUM | 4 | 1000-01-01 | 31.12.9999 |
DATETIME | 8 | 1000-01-01 00:00:00 | 9999-12-31 23:59:59 |
ZEITSTEMPEL | 4 | 19700101080001 | Irgendwann im Jahr 2038 |
ZEIT | 3 | -838:59:59 | 838:59:59 |
JAHR | 1 | 1901 | 2155 |
Jeder Zeittyp hat einen gültigen Bereich. Wenn dieser Bereich überschritten wird, gibt das System im Standard-SQL-Modus einen Fehler aus und speichert ihn mit einem Nullwert.
--Tabelle tdt erstellen mysql> Tabelle tdt erstellen (dt Datum, dttm Datum/Uhrzeit, tm Zeitstempel, tm Uhrzeit, yr Jahr);
--Verwenden Sie die Funktion now(), um die aktuelle Zeit in die Tabelle mysql> insert into tdt values(now(),now(),now(),now(),now()); einzufügen.
--Fügen Sie NULL in tms ein, MySQL weist automatisch die Systemzeit zu mysql> insert into tdt(tms) values(null);
MySQL weist die Systemzeit nur dem ersten TIMESTAMP-Feld in der Tabelle zu. Wenn es weitere Felder gibt, wird ihnen der Wert 0 zugewiesen.
--Ändern Sie die Tabelle tdt, fügen Sie die Spalte tms1 vom Typ TIMESTAMP hinzu und weisen Sie tms und tms1 Nullwerte zu mysql> Tabelle ändern, tdt, tms1-Zeitstempel hinzufügen; mysql> Beschreibung tdt; mysql> in tdt(tms,tms1) einfügen Werte(null,null);
Ein wichtiges Merkmal von TIMESTAMP besteht darin, dass es mit Verlusten in Zusammenhang steht. Beim Einfügen eines Datums wird dieses vor dem Speichern in die lokale Zeitzone umgerechnet, beim Abrufen aus der Datenbank muss das Datum vor der Anzeige in die lokale Zeitzone umgerechnet werden.
--Tabelle tdt1 erstellen, einschließlich der Felder tms, dt mysql> Tabelle tdt1 erstellen (tms-Zeitstempel, dt-Datum/Uhrzeit);
--Zeigen Sie die aktuelle Zeitzone an und fügen Sie die Systemzeit in die Tabelle tdt1mysql ein> zeigen Sie Variablen wie „time_zone“ an. mysql> in tdt1-Werte einfügen (jetzt(), jetzt());
Es kann festgestellt werden, dass der Zeitzonenwert SYSTEM
lautet. Dieser Wert stimmt standardmäßig mit der Zeitzone des Hosts überein. Da es sich in China befindet, ist es tatsächlich Ost 8 (+8:00).
--Ändern Sie die Zeitzone auf East 9th District und überprüfen Sie die Zeit erneut in tdt1mysql> set time_zone='+9:00';
MySQL bietet eine Vielzahl von Speichertypen für Zeichenfolgendaten, die sich je nach Version unterscheiden. Am Beispiel von 5.0 umfasst MySQL CHAR
, VARCHAR
, BINARY
, VARBINARY
, BLOB
, TEXT
, ENUM
und SET
.
Datentypen | Beschreibung ist Lagerung |
---|---|
CHARME) | M ist eine Ganzzahl zwischen 0 und 255 |
VARCHAR(M) | M ist eine Ganzzahl zwischen 0 und 65535, die Länge des Wertes + 1 Byte |
KLEINBLÖCK | Die zulässige Länge beträgt 0 bis 255 Bytes, der Wert Länge + 1 Byte |
KLECKS | Die zulässige Länge beträgt 0~65535 Bytes, der Wert Länge + 2 Bytes |
MITTELBLOB | Die zulässige Länge beträgt 0 ~ 167772150 Bytes, der Wert Länge + 3 Bytes |
LANGBLOB | Die zulässige Länge beträgt 0 bis 4294967295 Bytes, die Länge des Wertes + 4 Bytes |
TINYTEXT | Die zulässige Länge beträgt 0 bis 255 Bytes, der Wert Länge + 1 Byte |
TEXT | Die zulässige Länge beträgt 0~65535 Bytes, der Wert Länge + 2 Bytes |
MITTELTEXT | Die zulässige Länge beträgt 0 ~ 167772150 Bytes, der Wert Länge + 3 Bytes |
LANGTEXT | Die zulässige Länge beträgt 0 bis 4294967295 Bytes, die Länge des Wertes + 4 Bytes |
VARBINARY(M) | Erlaubt Bytefolgen variabler Länge von 0 bis M Bytes, die Länge des Wertes + 1 Byte |
BINÄR(M) | Es sind Bytefolgen mit fester Länge von 0 bis M Bytes zulässig. |
Verfahren
Die beiden sind sehr ähnlich und werden beide zum Speichern kürzerer Zeichenfolgen in MySQL verwendet. Der Hauptunterschied zwischen beiden liegt in der Speichermethode: Die Länge einer CHAR-Spalte ist auf die Länge festgelegt, die beim Erstellen der Tabelle deklariert wird; der Wert in einer VARCHAR-Spalte hingegen ist eine Zeichenfolge mit variabler Länge. Bei der Suche entfernt CHAR nachstehende Leerzeichen, während dies bei VARCHAR nicht der Fall ist.
--Erstellen Sie die Tabelle tc, die zwei Felder ch (char(6)) und vc (varchar(6)) enthält. mysql> Tabelle erstellen tc (ch char(6),vc varchar(6)); --Fügen Sie „abc“ in die Felder ch und vc ein. mysql> in tc-Werte einfügen('abc ','abc '); --Abfragefeldlänge mysql> select length(ch),length(vc) from tc;
Ähnlich wie CHAR und VARCHAR, außer dass sie Binärzeichenfolgen speichern.
--Tabelle tbc erstellen, einschließlich der Felder bc (binary(6)), vbc (varbinary(6)) mysql> Tabelle tbc erstellen (bc binary(6),vbc varbinary(6)); --Daten in die Tabelle einfügen ('a ','a ') mysql> in tbc-Werte einfügen('a ','a '); --Zeigen Sie die Länge des Feldwerts an mysql> select length(bc),length(vbc) from tbc;
Beim Speichern von BINÄRWERTEN füllt MySQL den Wert mit 0x00
(null Bytes) auf, um die angegebene Felddefinitionslänge zu erreichen.
--Verwenden Sie die Funktion hex(), um die in tbcmysql gespeicherten Daten anzuzeigen> select length(bc),length(vbc) from tbc;
Der Wertebereich des Enumerationstyps muss beim Anlegen der Tabelle explizit durch die Enumeration angegeben werden. Für eine Enumeration mit 1255 Elementen wird 1 Byte Speicher benötigt, für eine Enumeration mit 25665535 Elementen 2 Byte Speicher. Es sind maximal 65535 Mitglieder zulässig.
--Erstellen Sie die Tabelle te, die das Feld f1 enthält (enum('a','b','c')) mysql> Tabelle erstellen te(f1 enum('a','b','c')); --Fügen Sie mehrere Datensätze in die Tabelle einmysql> insert into te values('a'),('B'),('3'),(null);
ENUM unterscheidet nicht zwischen Groß- und Kleinschreibung. Es unterstützt auch das Einfügen von Daten mithilfe von Indizes (beginnend bei 1 wird ein Fehler gemeldet, wenn der Index außerhalb der Grenzen liegt). Der Sonderwert '0'
stellt einen Nullwert dar.
SET ist ENUM sehr ähnlich und ist ebenfalls ein Zeichenfolgenobjekt, das 0 bis 64 Mitglieder enthalten kann. Der Speicherplatz variiert je nach Mitgliederzahl.
Ein Satz von 1 bis 8 Mitgliedern belegt 1 Byte
Ein Satz von 9 bis 16 Mitgliedern nimmt 2 Bytes ein
Ein Satz von 17 bis 24 Mitgliedern nimmt 3 Bytes ein
Ein Satz von 25 bis 32 Mitgliedern nimmt 4 Bytes ein
Ein Satz von 32 bis 64 Mitgliedern nimmt 8 Bytes ein
Darüber hinaus kann der SET-Typ mehrere Mitglieder gleichzeitig auswählen.
--Tabelle ts erstellen, einschließlich Feld f1 (set()) mysql> Tabelle ts erstellen (f1 set('a','b','c','d')); mysql> in ts-Werte einfügen('a,b'),('a,d'),('b,c,d');
--Daten in die Tabelle einfügen ('a,b,a,c,d,d') mysql> in ts-Werte einfügen('a,b,a,c,d,d');
Der Typ SET kann aus dem zulässigen Wertesatz eine beliebige Anzahl von Elementen zur Kombination auswählen, so dass der Eingabewert, solange er innerhalb des zulässigen Wertekombinationsbereichs liegt, korrekt in der Spalte des Typs SET aufgezeichnet werden kann. Bei Werten außerhalb des erlaubten Bereichs wird ein Fehler gemeldet. Sets mit doppelten Mitgliedern werden automatisch dedupliziert.
Dies ist das Ende dieses Artikels über allgemeine Datentypen in MySQL 5.7. Weitere Informationen zu MySQL-Datentypen finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!
<<: CSS zum Erzielen eines Chat-Blaseneffekts
Inhaltsverzeichnis Was ist React Fiber? Warum Rea...
Inhaltsverzeichnis Szenarioanforderungen glibc-Ve...
GitHub bietet alle möglichen magischen Tools. Heu...
Seien Sie vorsichtig, wenn Sie auf Ereignisse ach...
Beschreibung Lösung Der Bridge-Modus der virtuell...
Der Effekt, den wir erreichen müssen: Was wird be...
asynchrone Funktion und await-Schlüsselwort in JS...
Nachfragehintergrund Das Projekt wurde mit Vue er...
So erstellen Sie eine virtuelle Linux-Maschine in...
Wie installiere ich MySQL 5.7 in Ubuntu 16.04? In...
1. Funktion: xargs kann die durch Leerzeichen ode...
Inhaltsverzeichnis 1. Globale Wache 1. Globale Fr...
Drop-Shadow und Box-Shadow sind beide CSS-Eigensc...
Ursache des Problems: Zunächst kann die Standard-...
Vorwort Bei der Entwicklung tatsächlicher Projekt...