sql >> データベース >  >> RDS >> Mysql

MySQL DECIMALの使用方法は?

    DOUBLE列はない DECIMAL列と同じで、問題が発生します 財務データにDOUBLE列を使用する場合。

    DOUBLEは、実際には FLOAT の倍精度(32ビットではなく64ビット)バージョンです。 。浮動小数点数は、実数 のおおよその表現です。 そしてそれらは正確ではありません。実際、0.01のような単純な数値は、FLOATまたはDOUBLEタイプでは正確に表現されていません。

    DECIMAL列は正確な表現ですが、可能な数の範囲がはるかに狭い場合は、より多くのスペースを占有します。あなたが尋ねたように0.0001から99.9999までの値を保持できる列を作成するには、次のステートメントが必要になります

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

    列の定義は、DECIMAL(M、D)の形式に従います。ここで M は最大桁数です(精度 )および D は小数点の右側の桁数です(スケール

    これは、前のコマンドが-99.9999から99.9999までの値を受け入れる列を作成することを意味します。 0.0000から99.9999の範囲のUNSIGNEDDECIMAL列を作成することもできます。

    例として、-9999.99から9999.99までの値を受け入れる列が必要な場合、コマンドはDECIMAL(6,2)になります。 。ご覧のとおり、引き続き精度を使用しています 6の場合、ただしスケールのみを許可します の2。

    MySQL DECIMALの詳細については、公式ドキュメントを参照してください。 常に素晴らしいリソースです。

    この情報はすべて、MySQL5.0.3以降のバージョンに当てはまることに注意してください。以前のバージョンを使用している場合は、本当にアップグレードする必要があります。

    MySQL8.0.17以降のアップデート

    署名なしは非推奨です FLOAT、DOUBLE、およびDECIMAL列の場合。



    1. SQLServerにテーブルが存在するかどうかを確認します

    2. MySQL:テーブルのすべての制約を確認するにはどうすればよいですか?

    3. Datetimeを使用して文字列として保存された日付を比較する

    4. phpとmysqlでSQLインジェクションを防ぐにはどうすればよいですか?