Detaillierte Erklärung der Verwendung von DECIMAL im MySQL-Datentyp In MySQL-Datentypen wie INT, FLOAT, DOUBLE, CHAR, DECIMAL usw. haben alle ihre eigenen Funktionen. Hier werden wir hauptsächlich die Funktion und Verwendung des DECIMAL-Typs in MySQL-Datentypen vorstellen. Normalerweise werden Gleitkommaspalten zugewiesene Werte auf die für die Spalte angegebene Dezimalzahl gerundet. Wenn Sie 1, 2 3 4 5 6 in einer FLOAT(8, 1)-Spalte speichern, ist das Ergebnis 1, 2. Wenn der gleiche Wert in einer FLOAT(8, 4)-Spalte gespeichert ist, ist das Ergebnis 1, 2 3 4 6. Dies bedeutet, dass Sie Gleitkommaspalten mit genügend Bits definieren sollten, um einen möglichst präzisen Wert zu erhalten. Wenn Sie eine Genauigkeit von einem Tausendstel wünschen, definieren Sie den Typ nicht so, dass er nur zwei Dezimalstellen hat. Diese Behandlung von Gleitkommawerten wurde in MySQL 3.23 ausgenommen, als sich die Leistung von FLOAT(4) und FLOAT(8) änderte. Diese beiden Typen sind jetzt Typen mit einfacher Genauigkeit (4 Byte) und doppelter Genauigkeit (8 Byte), die echte Gleitkommatypen in dem Sinne sind, dass ihre Werte wie angegeben gespeichert werden (vorbehaltlich lediglich der Hardwarebeschränkungen). Der Typ DECIMAL unterscheidet sich von FLOAT und DECIMAL, wobei DECIMAL tatsächlich als Zeichenfolge gespeichert wird. Der maximal mögliche Bereich von DECIMAL-Werten ist der gleiche wie der von DOUBLE, aber sein effektiver Bereich wird durch die Werte von M und D bestimmt. Wenn M geändert und D fixiert wird, erhöht sich sein Wertebereich mit zunehmender M. Die ersten drei Zeilen der Tabelle 2-7 veranschaulichen dies. Wenn M fest ist und D geändert wird, wird sein Wertebereich mit zunehmenden D kleiner (aber die Genauigkeit nimmt zu). Die letzten drei Zeilen der Tabelle 2-7 veranschaulichen dies. Der Wertebereich für einen bestimmten DECIMAL-Typ hängt von der Version des MySQL-Datentyps ab. Bei Versionen vor MySQL 3.23 belegt jeder Wert einer DECIMAL(M, D)-Spalte M Bytes, und das Vorzeichen (falls erforderlich) und der Dezimalpunkt sind in den M Bytes enthalten. Somit kann eine Spalte vom Typ DECIMAL(5, 2) Werte im Bereich -9,99 bis 9 9 , 9 9 haben, da diese alle möglichen 5-stelligen Werte abdecken. Ab MySQL 3.23 werden DECIMAL-Werte gemäß der ANSI-Spezifikation verarbeitet, die besagt, dass DECIMAL(M, D) in der Lage sein muss, jeden Wert mit M Ziffern und D Dezimalstellen darzustellen. Beispielsweise muss DECIMAL(5, 2) alle Werte von -999,99 bis 999,99 darstellen können. Außerdem müssen Vorzeichen und Dezimalpunkt gespeichert werden, sodass DECIMAL-Werte seit MySQL 3.23 M + 2 Bytes belegen. Bei DECIMAL(5, 2) benötigt der „längste“ Wert (-999,99) 7 Bytes. An einem Ende des positiven Bereichs ist kein positives Vorzeichen erforderlich, daher verwendet der MySQL-Datentyp es, um den Wertebereich über den von der ANSI-Spezifikation geforderten Wert hinaus zu erweitern. Beispielsweise ist der Maximalwert von DECIMAL(5, 2) 9 9 9 9. 9 9, weil 7 Bytes zur Verfügung stehen. Kurz gesagt, in MySQL 3.23 und höher ist der Bereich von DECIMAL(M, D) gleich dem Bereich von DECIMAL(M + 2, D) in früheren Versionen. Wenn D für eine DECIMAL-Spalte in allen Versionen des MySQL-Datentyps 0 ist, wird kein Dezimalpunkt gespeichert. Dies hat zur Folge, dass der Wertebereich der Spalte erweitert wird, da die Bytes, die zuvor zur Speicherung des Dezimalpunkts verwendet wurden, nun zur Speicherung anderer Zahlen genutzt werden können. Wenn Sie Fragen haben, hinterlassen Sie bitte eine Nachricht oder kommen Sie zur Diskussion in die Community. Vielen Dank fürs Lesen und ich hoffe, es kann Ihnen helfen. Vielen Dank für Ihre Unterstützung dieser Site! Das könnte Sie auch interessieren:
|
<<: VMware Workstation-Installation unter Linux
>>: WeChat-Applet implementiert Anmeldeschnittstelle
Ursprüngliche Absicht Der Grund für die Entwicklu...
Dieser Artikel beschreibt anhand von Beispielen, ...
1. Formular <form id="" name="&...
MySql-Batch-Insert-Optimierung. Beispiel für SQL-...
Die Lösung für das Problem, dass die PHP7.3-Versi...
Glasfenster Was wir heute erreichen werden, ist d...
In diesem Artikelbeispiel wird der spezifische Ja...
Vorwort Wir alle wissen, dass MySQL die Server-ID...
In diesem Artikel finden Sie den spezifischen Cod...
<br />Einige Webseiten sehen nicht groß aus,...
Mausereignis Wenn die Maus eine bestimmte Operati...
In vertikaler Richtung können Sie die Zellenausri...
Warum brauchen wir virtuellen Dom? Virtual DOM wu...
Manche Webseiten erscheinen möglicherweise nicht g...
System- und Benutzerumgebungsdesign <br />D...