読み方 : デシマルがた
DECIMAL型【NUMERIC型】DEC型
概要

数値を扱うSQLのデータ型には、整数型や浮動小数点型などがある。浮動小数点型は数値を二進数の近似値として保持するため、十進数の小数を正確に表現できず、計算を繰り返すうちに誤差が蓄積することがある。DECIMAL型はすべての桁を十進数のまま厳密に保持するため、こうした誤差が生じない。
型の定義には全体の桁数(精度)と小数点以下の桁数(スケール)を指定し、「DECIMAL(精度, スケール)」という形式で記述する。例えば、「DECIMAL(6,3)」と指定した場合、全体6桁、小数点以下3桁となり、-999.999~999.999の範囲の数値を格納できる。スケールを「0」にすれば整数のみを扱う型として利用することもできる。
指定できる最大桁数はDBMSごとに異なる。MySQLやMariaDBでは65桁まで、PostgreSQLでは131,072桁まで、Oracle DatabaseやSQL Serverでは38桁まで対応している。スケールはいずれも精度の範囲内で指定する。MySQLなど一部の製品では「UNSIGNED」属性を付加することで非負の数値のみに制限できるが、これはSQL標準には含まれない独自の仕様である。
DECIMAL型は固定小数点型に分類される。誤差のない十進演算を実現する代わりに、浮動小数点型と比べてデータの記憶容量が増え、処理速度も劣る傾向がある。厳密性を要する金額の計算など限られた用途に限って用いられる型である。SQL標準で「DECIMAL型」と「NUMERIC型」は同じ型を指しており、多くのDBMSでは両者を同一の型として実装している。
(2026.6.23更新)