MySQL 8.0 リファレンスマニュアル


MySQL 8.0 リファレンスマニュアル  /  ...  /  固定小数点型 (真数値) - DECIMAL、NUMERIC

11.1.3 固定小数点型 (真数値) - DECIMAL、NUMERIC

DECIMAL および NUMERIC 型は真数値データ値を格納します。 これらの型は、金銭データを扱う場合など、正確な精度を保持することが重要な場合に使用されます。 MySQL では、NUMERICDECIMAL として実装されるので、DECIMAL に関する次の注意事項が NUMERIC にも同様に適用されます。

MySQL は、DECIMAL 値をバイナリ形式で格納します。 セクション12.25「高精度計算」を参照してください。

DECIMAL のカラム宣言では、精度とスケールを指定できます (通常は指定します)。 例:

salary DECIMAL(5,2)

この例では、5 が精度で、2 がスケールです。 精度は、その値に格納された有効な桁数を表し、スケールは小数点以下に格納できる桁数を表しています。

標準 SQL では、DECIMAL(5,2) には小数部が 2 桁の合計 5 桁の値を格納できる必要があるので、salary カラムに格納できる値は、-999.99 から 999.99 の範囲になります。

標準 SQL では、構文 DECIMAL(M) は、DECIMAL(M,0) と同等です。 同様に、構文 DECIMALDECIMAL(M,0) と同等です。M の値を決定するために、実装は許可されています。 MySQL は、DECIMAL 構文のこれらのバリアント形式をどちらもサポートします。 M のデフォルト値は 10 です。

スケールが 0 の場合、DECIMAL 値には小数点も小数部も含まれません。

DECIMAL の最大桁数は 65 ですが、指定した DECIMAL カラムの実際の範囲は、その指定したカラムの精度またはスケールによって制約される場合があります。 指定のスケールで許可されている数より多くの桁が小数点以下にある値が、このようなカラムに割り当てられた場合、値はそのスケールに変換されます。 (正確な動作はオペレーティングシステム固有ですが、一般的には効果は許可されている桁数に切り捨てられます。)


関連キーワード:  DECIMAL, クラス, 数値, 空間, カラム, 小数点, スケール, 構文, NUMERIC, 格納