sql >> Database teknologi >  >> RDS >> Mysql

Hvordan bruger man MySQL DECIMAL?

DOBBELT kolonner er ikke det samme som DECIMAL-kolonner, og du vil komme i problemer hvis du bruger DOBBELTE kolonner til finansielle data.

DOUBLE er faktisk bare en dobbelt præcision (64 bit i stedet for 32 bit) version af FLOAT . Flydende kommatal er omtrentlige repræsentationer af reelle tal og de er ikke nøjagtige. Faktisk har simple tal som 0,01 ikke en nøjagtig repræsentation i FLOAT eller DOUBLE typer.

DECIMAL-kolonner er nøjagtige repræsentationer, men de fylder meget mere for et meget mindre udvalg af mulige tal. For at oprette en kolonne, der kan indeholde værdier fra 0,0001 til 99,9999, som du spurgte om, skal du bruge følgende erklæring

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

Kolonnedefinitionen følger formatet DECIMAL(M, D) hvor M er det maksimale antal cifre (præcisionen ) og D er antallet af cifre til højre for decimaltegnet (skalaen ).

Det betyder, at den forrige kommando opretter en kolonne, der accepterer værdier fra -99.9999 til 99.9999. Du kan også oprette en USIGNET DECIMAL kolonne, der spænder fra 0,0000 til 99,9999.

For eksempel, hvis du ønsker en kolonne, der accepterer værdier fra -9999,99 til 9999,99, ville kommandoen være DECIMAL(6,2) . Som du kan se, bruger du stadig en præcision på 6, men tillad kun en skala af 2.

For mere information om MySQL DECIMAL de officielle dokumenter er altid en stor ressource.

Husk, at alle disse oplysninger gælder for versioner af MySQL 5.0.3 og nyere. Hvis du bruger tidligere versioner, bør du virkelig opgradere.

Opdatering på MySQL 8.0.17+

Usigned er forældet for FLOAT-, DOUBLE- og DECIMAL-kolonner.



  1. DATE_SUB() Eksempler – MySQL

  2. INDSÆT flere poster ved hjælp af ruby ​​on rails aktive rekord

  3. Django queryset-objekter returnerer Ingen i stedet for 0, selvom databasen har 0 gemt som feltværdi

  4. Importer CSV til MySQL