Heim >Datenbank >MySQL-Tutorial >Welcher Typ wird für Beträge in MySQL verwendet?
In MySQL verwendet der Betrag den Typ „DECIMAL“. Der Typ DECIMAL ist ein Datentyp, der speziell für finanzielle Probleme entwickelt wurde. Er kann das Problem der Datenreichweite und -genauigkeit lösen. Er wird häufig für die tatsächliche Speicherung von Gelddaten wie Preisen, Löhnen und Kontoständen verwendet in Form einer Zeichenfolge. Die Anzahl der Ziffern im Ganzzahlteil und im Dezimalteil kann bei der Definition abgegrenzt werden. Die Syntax ist „DECIMAL(M,D)“. und der Parameter D ist die Anzahl der Stellen rechts vom Dezimalpunkt (Skala).
Die Betriebsumgebung dieses Tutorials: Windows7-System, MySQL8-Version, Dell G3-Computer.
In MySQL verwendet der Betrag den Typ „DECIMAL“.
Dezimal (Festkommazahl) ist ein Datentyp, der speziell für finanzielle Probleme entwickelt wurde und das Problem der Datenreichweite und -genauigkeit lösen kann.
DECIMAL wurde mit MySQL 5.1 eingeführt und die Syntax der Spaltendeklaration lautet DECIMAL(M,D). In MySQL 5.1 ist der Wertebereich der Parameter wie folgt:
M ist die maximale Anzahl von Zahlen (Genauigkeit). Sein Bereich liegt zwischen 1 und 65 (in älteren MySQL-Versionen liegt der zulässige Bereich zwischen 1 und 254), und der Standardwert von M ist 10.
D ist die Anzahl der Stellen rechts vom Dezimalpunkt (Skala). Der Bereich liegt zwischen 0 und 30, darf jedoch M nicht überschreiten.
Ich möchte betonen:Erklärung: float belegt 4 Bytes, double belegt 8 Bytes und decimail(M,D) belegt M+2 Bytes.
Zum Beispiel beträgt der Maximalwert von DECIMAL(5,2) 9 9 9 9 , da 7 Bytes verfügbar sind. Der Typ DECIMAL unterscheidet sich von FLOAT und DOUBLE. DOUBLE wird tatsächlich in Form einer Zeichenfolge gespeichert. Der maximal mögliche Wertebereich von DECIMAL ist der gleiche wie der von DOUBLE, der effektive Wertebereich wird jedoch durch M und D bestimmt. Wenn M geändert und D festgelegt wird, wird der Wertebereich größer, wenn M größer wird.
In MySQL werden Festkommazahlen in Form von Zeichenfolgen gespeichert. Wenn die Genauigkeitsanforderungen relativ hoch sind (z. B. Währung, wissenschaftliche Daten), ist es besser, DECIMAL zu verwenden Typ, und die anderen beiden Gleitkommazahlen werden ebenfalls verwendet Subtraktions- und Vergleichsoperationen sind ebenfalls problematisch, daher müssen Sie bei der Verwendung von Gleitkommazahlen vorsichtig sein und versuchen, Gleitkommavergleiche zu vermeiden. MySQL-Datentyp DECIMAL und monetäre Daten
Wir verwenden häufig den Datentyp DECIMAL für monetäre Daten wie Preise, Gehälter, Kontostände usw. Wenn Sie eine Datenbank entwerfen, die Gelddaten verarbeitet, sollte die folgende Syntax in Ordnung sein.
amount DECIMAL(19,2);Wenn Sie jedoch die Regeln der allgemein anerkannten Rechnungslegungsgrundsätze (GAAP) einhalten möchten, muss die Währungsspalte mindestens 4 Dezimalstellen enthalten, um sicherzustellen, dass der gerundete Wert 0,01 USD nicht überschreitet. In diesem Fall sollten Sie eine Spalte mit 4 Dezimalstellen wie folgt definieren:
amount DECIMAL(19,4);
Beispiel für den Datentyp MySQL DECIMAL
Erstellen Sie zunächst eine neue Tabelle mit dem Namen „Materialien“ mit drei Feldern: ID, Beschreibung und Kosten.
CREATE TABLE materials ( id INT AUTO_INCREMENT PRIMARY KEY, description VARCHAR(255), cost DECIMAL(19 , 4 ) NOT NULL );Zweitens fügen Sie die Daten in die Materialtabelle ein.
INSERT INTO materials(description,cost) VALUES('Bicycle', 500.34),('Seat',10.23),('Break',5.21);Drittens fragen Sie Datenmaterialien aus der Tabelle ab.
SELECT * FROM materials;
Viertens ändern Sie die Kostenspalte so, dass sie das ZEROFILL-Attribut enthält.
ALTER TABLE materials MODIFY cost DECIMAL(19,4) zerofill;Fünf: Überprüfen Sie noch einmal die Materialliste.
SELECT * FROM materials;
Wie Sie sehen können, haben wir viele Nullauffüllungen im Ausgabewert.
【Verwandte Empfehlung:MySQL-Video-Tutorial
】Das obige ist der detaillierte Inhalt vonWelcher Typ wird für Beträge in MySQL verwendet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!