Heim  >  Artikel  >  Datenbank  >  Ausführliche Erläuterung der Anwendungsbeispiele von DECIMAL in MySQL-Datentypen

Ausführliche Erläuterung der Anwendungsbeispiele von DECIMAL in MySQL-Datentypen

小云云
小云云Original
2017-12-08 12:00:162637Durchsuche

In MySQL-Datentypen wie INT, FLOAT, DOUBLE, CHAR, DECIMAL usw. haben sie alle ihre eigenen Funktionen. Im Folgenden werden hauptsächlich die Funktionen und die Verwendung des DECIMAL-Typs in MySQL-Datentypen vorgestellt. In diesem Artikel werden hauptsächlich relevante Informationen zu den detaillierten Verwendungsbeispielen von DECIMAL im MySQL-Datentyp vorgestellt. Ich hoffe, dass dieser Artikel allen helfen kann und Freunde in Not darauf verweisen können.

Normalerweise wird der einer Gleitkommaspalte zugewiesene Wert auf die von der 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 derselbe Wert in der Spalte von FLOAT(8, 4) gespeichert ist, ist das Ergebnis 1. 2 3 4 6.

Das bedeutet, dass eine Gleitkommaspalte mit genügend Ziffern definiert werden sollte, um einen möglichst genauen Wert zu erhalten. Wenn Sie eine Genauigkeit auf das Tausendstel wünschen, definieren Sie den Typ nicht so, dass er nur zwei Dezimalstellen hat.

Es gibt Ausnahmen von dieser Behandlung von Gleitkommawerten in MySQL3.23, und die Leistung von FLOAT(4) und FLOAT(8) hat sich geändert. Diese beiden Typen sind jetzt einfache Genauigkeit (4 Bytes) und doppelte Genauigkeit (8 Bytes), in dem Sinne, dass ihre Werte in der angegebenen Form gespeichert werden (vorbehaltlich nur Hardwareeinschränkungen).

Der DECIMAL-Typ unterscheidet sich von FLOAT und DECIMAL, bei denen DECIMAL tatsächlich als Zeichenfolge gespeichert wird. Der maximal mögliche Wertebereich von DECIMAL ist derselbe wie der von DOUBLE, sein effektiver Wertebereich wird jedoch durch die Werte von M und D bestimmt. Wenn M geändert wird und D fest ist, wird sein Wertebereich größer, wenn M größer wird. Die ersten drei Zeilen von Tabelle 2-7 veranschaulichen diesen Punkt. Wenn M fest ist und D geändert wird, wird sein Wertebereich kleiner, wenn D größer wird (aber die Genauigkeit steigt). Die letzten drei Zeilen von Tabelle 2-7 veranschaulichen diesen Punkt.

Der Wertebereich eines bestimmten DECIMAL-Typs hängt von der Version des MySQL-Datentyps ab. Bei Versionen vor MySQL3.23 belegt jeder Wert der Spalte DECIMAL(M, D) M Bytes, und das Vorzeichen (falls erforderlich) und der Dezimalpunkt sind in den M Bytes enthalten. Daher haben Spalten vom Typ DECIMAL(5, 2) Werte im Bereich von -9,99 bis 9 9 9 , da sie alle möglichen 5-Zeichen-Werte abdecken.

Genau wie MySQL3.23 werden DECIMAL-Werte gemäß der ANSI-Spezifikation verarbeitet. Die ANSI-Spezifikation schreibt vor, dass DECIMAL(M, D) jeden Wert mit M Ziffern und D Dezimalstellen darstellen kann.

Zum Beispiel muss DECIMAL(5, 2) alle Werte von -999,99 bis 999,99 darstellen können. Und das Vorzeichen und der Dezimalpunkt müssen gespeichert werden, sodass der DECIMAL-Wert seit MySQL3.23 M + 2 Bytes belegt. Für DECIMAL(5, 2) benötigt der „längste“ Wert (-9 9 9 , 9 9) 7 Bytes.

An einem Ende des positiven Wertebereichs ist das Pluszeichen nicht erforderlich, sodass der MySQL-Datentyp es verwendet, um den Wertebereich über den von der ANSI-Spezifikation geforderten Wertebereich hinaus zu erweitern. Der Maximalwert von DECIMAL(5, 2) beträgt beispielsweise 9 9 9 9 , da 7 Bytes verfügbar sind.

Kurz gesagt, in MySQL3.23 und späteren Versionen ist der Wertebereich von DECIMAL(M, D) gleich dem Wertebereich von DECIMAL(M + 2, D) in früheren Versionen. In allen Versionen des MySQL-Datentyps wird kein Dezimalpunkt gespeichert, wenn D einer DECIMAL-Spalte 0 ist. Dadurch wird der Wertebereich der Spalte erweitert, da die zur Speicherung des Dezimalpunkts verwendeten Bytes nun zur Speicherung anderer Zahlen genutzt werden können.

Verwandte Empfehlungen:

10 empfohlene Artikel zum Dezimaltyp

MySQL-Datentyp – dezimale detaillierte Erklärung

Beachten Sie, dass Dezimalzahlen verwendet werden müssen, um Währungswerte in MySQL zu identifizieren

Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung der Anwendungsbeispiele von DECIMAL in MySQL-Datentypen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn