Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie verwende ich MySQL DECIMAL?

DOUBLE-Spalten sind nicht dasselbe wie DECIMAL-Spalten, und Sie werden in Schwierigkeiten geraten wenn Sie DOUBLE-Spalten für Finanzdaten verwenden.

DOUBLE ist eigentlich nur eine Version mit doppelter Genauigkeit (64 Bit statt 32 Bit) von FLOAT . Fließkommazahlen sind ungefähre Darstellungen von reellen Zahlen und sie sind nicht genau. Tatsächlich haben einfache Zahlen wie 0,01 keine exakte Darstellung in FLOAT- oder DOUBLE-Typen.

DECIMAL-Spalten sind exakte Darstellungen, nehmen jedoch viel mehr Platz für einen viel kleineren Bereich möglicher Zahlen ein. Um eine Spalte zu erstellen, die Werte von 0,0001 bis 99,9999 enthalten kann, wie Sie gefragt haben, benötigen Sie die folgende Anweisung

CREATE TABLE your_table
(
    your_column DECIMAL(6,4) NOT NULL
);

Die Spaltendefinition folgt dem Format DECIMAL(M, D) wobei M ist die maximale Anzahl von Ziffern (die Präzision ) und D ist die Anzahl der Ziffern rechts vom Dezimalpunkt (die Skala ).

Das bedeutet, dass der vorherige Befehl eine Spalte erstellt, die Werte von -99,9999 bis 99,9999 akzeptiert. Sie können auch eine UNSIGNED DECIMAL-Spalte erstellen, die von 0,0000 bis 99,9999 reicht.

Wenn Sie beispielsweise eine Spalte wünschen, die Werte von -9999,99 bis 9999,99 akzeptiert, lautet der Befehl DECIMAL(6,2) . Wie Sie sehen können, verwenden Sie immer noch eine Präzision von 6, aber nur eine Skala zulassen von 2.

Weitere Informationen zu MySQL DECIMAL finden Sie in den offiziellen Dokumenten sind immer eine großartige Ressource.

Denken Sie daran, dass alle diese Informationen für Versionen von MySQL 5.0.3 und höher gelten. Wenn Sie frühere Versionen verwenden, sollten Sie wirklich aktualisieren.

Update auf MySQL 8.0.17+

Unsigned ist veraltet für FLOAT-, DOUBLE- und DECIMAL-Spalten.