Detaillierte Erläuterung der grundlegenden Datentypen in mysql8.0.19

Detaillierte Erläuterung der grundlegenden Datentypen in mysql8.0.19

MySQL-Basisdatentypen

Übersicht über gängige MySQL-Datentypen

![1036857-20170801181433755-146301178](D:\Notes\mysql\Review\1036857-20170801181433755-146301178.png)1. Zahlen:
 Ganzzahl: tinyinit int bigint
 Dezimal:
 float: Ungenau, wenn die Anzahl der Ziffern kürzer ist. double: Ungenau, wenn die Anzahl der Ziffern länger ist. 0,000001230123123123
 Gespeichert: 0.000001230000

 Dezimalzahl: (Wenn Sie Dezimalzahlen verwenden, wird die Verwendung von Dezimalzahlen empfohlen.)
 Das genaue interne Prinzip besteht in der Speicherung in Stringform. 2. String:
 char (10): einfach und grob, verschwendet Platz, das Stammverzeichnis für den schnellen Zugriff wird als root000000 gespeichert
 varchar: präzise, ​​platzsparend, langsame Zugriffsgeschwindigkeit SQL-Optimierung: Setzen Sie beim Erstellen einer Tabelle Typen mit fester Länge an den Anfang und Typen mit variabler Länge ans Ende. Wenn beispielsweise Angaben zu Geschlecht, Adresse oder Beschreibung > 255 Zeichen umfassen und das Limit überschritten wird, speichern Sie den Dateipfad in der Datenbank.
 Suchen Sie sich beispielsweise einen Dateiserver für Bilder und Videos und speichern Sie nur den Pfad bzw. die URL in der Datenbank.

3. Zeittyp:
 Am häufigsten verwendet: datetime
 
4. Aufzählungstypen und Sammlungstypen

Numerische Typen

[Bildübertragung über externen Link fehlgeschlagen. Die Quellseite verfügt möglicherweise über einen Anti-Hotlink-Mechanismus. Es wird empfohlen, das Bild zu speichern und direkt hochzuladen (img-HAIxWM9Z-1585063057990) (D:\Notes\mysql\Review\1036857-20170801181433755-146301178.png)]

1. Integer-Typ

  • Ganzzahltypen: TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT
  • Funktion: Alter, Level, ID, verschiedene Nummern usw. speichern.
Tests vom Typ Integer werden standardmäßig signiert.mysql> create table t1(money tinyint); #Beachten Sie, dass beim Erstellen einer Tabelle nach dem letzten Feld kein Komma stehen darf. Dies ist eine falsche Schreibweise.mysql> create table t1(money tinyint,);

mysql> in t1-Werte einfügen (11);
Abfrage OK, 1 Zeile betroffen (0,28 Sek.)

mysql> wähle * aus t1;

mysql> in t1-Werte einfügen (-10);
Abfrage OK, 1 Zeile betroffen (0,11 Sek.)

mysql> wähle * aus t1;

mysql> in t1-Werte einfügen (-200);
Abfrage OK, 1 Zeile betroffen, 1 Warnung (0,10 Sek.)

mysql> wähle * aus t1;

Das Festlegen des Datentyps hat eine eingeschränkte Wirkung und kann nur Zahlen innerhalb seines eigenen Bereichs darstellen. Die Schreibmethode zum Erstellen eines vorzeichenlosen numerischen Typs lautet:
mysql> Tabelle t2 erstellen (ID tinyint unsigned);

2. Gleitkommatyp

  • Gleitkommatyp: Float Double
  • Funktion: Speicherung von Gehalt, Größe, Temperatur, Gewicht, körperlichen Parametern usw.
Testmysql> create table t3(id float(60,30)); # 60 stellt die Gesamtzahl der Dezimalstellen + Ganzzahlen dar. Abfrage OK, 0 Zeilen betroffen (1,70 Sek.) # 30 stellt die maximale Anzahl von Dezimalstellen dar. mysql> create table t4(id double(60,30));
Abfrage OK, 0 Zeilen betroffen (0,88 Sek.)

mysql> create table t5(id decimal(60,30)); # Der Grund, warum Dezimalwerte genaue Werte speichern können, besteht darin, dass sie intern als Zeichenfolge gespeichert werden.
Abfrage OK, 0 Zeilen betroffen (0,96 Sek.)

mysql> in t3-Werte einfügen (1,111111111111111111111);
Abfrage OK, 1 Zeile betroffen (0,13 Sek.)

mysql> in t4-Werte einfügen (1,111111111111111111111);
Abfrage OK, 1 Zeile betroffen (0,22 Sek.)

mysql> in t5-Werte einfügen (1,111111111111111111111);
Abfrage OK, 1 Zeile betroffen (0,09 Sek.)

mysql> wähle * aus t3;
mysql> wähle * aus t4;
mysql> wähle * aus t5;
1. Tabelle erstellen create table t2(f1 float(5,2),f2 float,f3 double(5,2),f4 double);

float(5,2) behält zwei Dezimalstellen und rundet auf double(5,2)
2. Daten schreiben		
in t2-Werte einfügen (5,2336,5,2336,5,336,5,2336);
3. Zeigen Sie die Daten in der Tabelle an	
wähle * aus t2;
4. Geben Sie die zu schreibenden Daten an: insert into t2(f2,f4) values(5.1783682169875975,5.1783682169875975);

in den Tabellennamen (Feld 1, Feld 3) Werte (Wert 1, Wert 3) einfügen;

1. Tabelle t3 erstellen. create table t3(f1 float, d1 double, d2 decimal(30,20), d3 decimal);
2. Zeigen Sie die Tabellenstruktur desc t3 an.
3. Daten schreiben	
einfügen in t3-Werte (5,1783682169875975179,5,1783682169875975179,5,1783682169875975179,5,1783682169875975179);

int--------Keine Längenbeschränkung, kann bis zu 10 Ziffern darstellen float(m,n) m-----Gesamtzahl Ziffern n-----Dezimalstellen

Datumstyp

  • Typ: DATUM, ZEIT, DATETIME, IMESTAMP, JAHR
  • Funktion: Speichern der Benutzerregistrierungszeit, der Artikelveröffentlichungszeit, der Eintrittszeit des Mitarbeiters, der Geburtszeit, der Ablaufzeit usw.
mysql> Tabelle erstellen t6(d1 Jahr, d2 Datum, d3 Datum/Uhrzeit);
Abfrage OK, 0 Zeilen betroffen (1,75 Sek.)

mysql> in t6-Werte einfügen (jetzt(), jetzt(), jetzt());
Abfrage OK, 1 Zeile betroffen, 1 Warnung (0,12 Sek.)

mysql> wähle * aus t6;

Zeichenfolgentyp

Leistungsvergleich zwischen char und varchar:
    Vergleichen Sie char(5) und varchar(5). Angenommen, ich möchte drei Namen speichern: sb, ssb1, ssbb2
    verkohlen:
      Vorteile: Einfach und grob. Egal wie lang die Daten sind, ich werde sie entsprechend der angegebenen Länge speichern, 5 mal 5. Drei Namen werden wie folgt gespeichert: sb ssb1 ssbb2, mit Leerzeichen dazwischen. Beim Abrufen der Daten werden 5 mal 5 abgerufen. Es ist einfach, grob und schnell. Nachteile: Es scheint Platz zu verschwenden, und die Länge der Daten, die wir in Zukunft speichern, kann ungleichmäßig sein. Varchar:
      Der varchar-Typ speichert Daten mit unbestimmter Länge, was prägnanter ist und Platz spart. Wenn Sie beispielsweise die drei oben genannten Namen speichern, würde dies ungefähr so ​​aussehen: sbssb1ssbb2, verbunden. Wenn Sie diese drei Namen so speichern würden, wie würden Sie sie dann abrufen? Wissen Sie, wie lange es dauern sollte, den ersten abzurufen? 
 
      Wenn varchar Daten speichert, fügt es vor jedem Datensatz einen Header hinzu. Dieser Header besteht aus 1-2 Datenbytes, die sich auf die Länge der folgenden Daten beziehen. 1 Byte kann 2**8=256 darstellen, und zwei Bytes stellen 2**16=65536 dar, was Zahlen von 0 bis 65535 darstellen kann. Daher wird varchar folgendermaßen gespeichert: 1byte+sb+1byte+ssb1+1byte+ssbb2. Daher ist es schwieriger zu speichern, was zu einer geringeren Effizienz als char führt. Es ist auch langsamer abzurufen, da zuerst die Länge und dann die Daten benötigt werden.

      Vorteile: Es spart etwas Festplattenspeicher. Ein Zeichen des ACSII-Codes kann mit einer Länge von einem Byte dargestellt werden. Es ist jedoch nicht unbedingt wirtschaftlicher als char. Sehen Sie sich die Tabelle auf der offiziellen Website an, um die Daten zu vergleichen. Wenn die von Ihnen gespeicherten Daten genau die von Ihnen angegebene Feldlänge haben, nimmt varchar tatsächlich mehr Speicherplatz ein als char.

Wert CHAR(4) Erforderlicher Speicherplatz VARCHAR(4) Erforderlicher Speicherplatz
'' ' ' 4 Bytes '' 1 Byte
'ab' 'ab ' 4 Bytes 'ab' 3 Bytes
'abcd' 'abcd' 4 Bytes 'abcd' 5 Bytes
'abcdefgh' 'abcd' 4 Bytes 'abcd' 5 Bytes
 
             Nachteile: Langsame Zugriffsgeschwindigkeit. Bei InnoDB-Datentabellen unterscheidet das interne Zeilenspeicherformat nicht zwischen Spalten mit fester und variabler Länge (alle Datenzeilen verwenden einen Header-Zeiger auf den Datenspaltenwert). Daher ist die Verwendung einer CHAR-Spalte mit fester Länge im Wesentlichen nicht unbedingt besser als die Verwendung einer VARCHAR-Spalte mit variabler Länge. Der wichtigste Leistungsfaktor ist daher die Gesamtmenge an Speicher, die von den Datenzeilen genutzt wird. Da CHAR im Durchschnitt mehr Speicherplatz beansprucht als VARCHAR, ist es besser, VARCHAR zu verwenden, um den Gesamtspeicherplatz und die Festplatten-E/A für die zu verarbeitenden Datenzeilen zu minimieren.
Geeignet für die Verwendung von Zeichen:
	Zur Verwendung von varchar eignen sich Personalausweisnummer, Mobiltelefonnummer, QQ-Nummer, Benutzername, Passwort und Bankkartennummer:
	Kommentare, Momente, Weibo 1. Tabelle erstellen create table t6(c1 char(1),v1 varchar(1),c2 char(8),v2 varchar(8));

2. Daten schreiben, in t6-Werte einfügen ('alexq','alexq','alexq','alexq');
3. Fragen Sie die Daten in der Tabelle ab: select * from t6;

Aufzählungs- und Sammlungstypen

enum: Einzelauswahlverhalten ------ Der Aufzählungstyp erlaubt nur die Auswahl eines einzelnen Werts aus einer Menge von Werten, nicht mehrerer Werte gleichzeitig. 1. Tabelle erstellen create table t8(id int, name char(18), gender enum('male','female'));
2. Daten schreiben, in t8 einfügen values(1,'alex','unknown'); ---------Unbekannt kann nicht geschrieben werden 3. Daten in der Tabelle abfragen select * from t8;
4. Daten schreiben. In t8 einfügen. Werte (1, „Alex“, „männlich“). Es kann „männlich“ geschrieben werden. 5. Daten in der Tabelle abfragen. „select * from t8“;
2. Daten schreiben. In t8 einfügen. Werte (1, „Alex“, „weiblich“); ------------ „weiblich“ kann geschrieben werden. 3. Daten in der Tabelle abfragen. Select * from t8;
Satz:	 
	Durch Mehrfachauswahlverhalten kann **die beliebige Auswahl von 1 oder mehreren Elementen im Wertesatz zur Kombination ermöglicht werden**. Das Einfügen von Inhalten außerhalb des Bereichs wird nicht zugelassen und doppelte Werte werden automatisch entfernt.
1. Tabelle erstellen create table t9(id int,name char(18),hobby set('rauchen','trinken','fußwaschen','massage','dauerwelle'));
2. Schreiben Sie die Daten und fügen Sie sie in t9-Werte ein (1, ‚Taibai‘, ‚Dauerwelle, Rauchen, Trinken, Massage‘);
3. Fragen Sie die Daten in der Tabelle ab: select * from t8;
4. Schreiben Sie die Daten und fügen Sie sie in t9-Werte ein (1, ‚Da Zhuang‘, ‚Füße waschen, Füße waschen, Füße waschen, massieren, massieren, Spiele spielen‘);
5. Fragen Sie die Daten in der Tabelle ab: select * from t8;

Zusammenfassen

Dies ist das Ende dieses Artikels über mysql8.0.19-Basic-Datentypen. Weitere relevante Inhalte zu mysql8.0.19-Basic-Datentypen finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Kompatibilitätsvergleich zwischen PostgreSQL- und MySQL-Datentypen
  • Prinzipien der MySQL-Datentypoptimierung
  • Detaillierte Erklärung der Datentypen und Schemaoptimierung in MySQL
  • Beschreibung der Entsprechung zwischen MyBatis JdbcType und Oracle- und MySql-Datentypen
  • Detaillierte Analyse des MySQL-Datentyps DECIMAL
  • Detaillierte Erklärung der Prinzipien und der Verwendung von MySQL-Datentypen und Feldattributen
  • Einführung in MySQL (Teil 2) Detaillierte Erklärung der Datenbank-Datentypen
  • Detaillierte Erklärung der Bedeutung von N und M im MySQL-Datentyp DECIMAL(N,M)
  • MySQL-Operationen: Operationen mit JSON-Datentyp
  • Vollständige Analyse der MySQL-Datentypen

<<:  Analyse der Linux-Konfiguration zur Realisierung eines schlüssellosen Anmeldevorgangs

>>:  Vue implementiert Paging-Funktion

Artikel empfehlen

Erläuterung des Beispiels einer MySQL-Datenanalyse-Speicher-Engine

Inhaltsverzeichnis 1. Fälle vorstellen 2. Zeigen ...

Eine kurze Analyse des MySQL-Index

Ein Datenbankindex ist eine Datenstruktur, deren ...

Detaillierte Erklärung der Lösung für verweigerte Berechtigungen in Linux

Zugriff verweigert: Der Grund hierfür ist: Es lie...

Tomcat8 verwendet Cronolog zum Aufteilen von Catalina.Out-Protokollen

Hintergrund Wenn die von Tomcat generierte catali...

Ideen und Codes zur Realisierung des Lupeneffekts in js

In diesem Artikelbeispiel wird der spezifische Co...

Erfahrungen bei der Neugestaltung der Homepage von TOM.COM

<br />Ohne Vorwarnung sah ich auf cnBeta Neu...

MySQL-Triggersyntax und Anwendungsbeispiele

Dieser Artikel veranschaulicht anhand von Beispie...