Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
DECIMAL データ型は、総桁数の precision と小数点以下の桁数の scale を持つ 10 進数です。
DECIMAL [ ( precision [ , scale ] ) ]
precision 式の桁数を指定する整数式。1 ~ 127 の範囲。デフォルト設定値は 30 です。
scale 小数点以下の桁数を指定する整数式。0 ~ 127 の範囲。scale 値は precision 値以下にする必要があります。デフォルト設定値は 6 です。
デフォルトは、データベースオプションを指定することによって変更できます。
DECIMAL データ型は真数値データ型です。精度は、算術演算の後、最小の有効桁数まで保存されます。
10 進数に必要な記憶領域は次のように計算できます。
2 + int( (before + 1)/2 ) + int( (after + 1)/2 )
関数 int は引数の整数部分であり、before と after は小数点の前後の有効桁数です。記憶領域の計算の基準は、カラムの中で使われている最大精度と小数点以下の桁数ではなく、格納されている値を使います。
DECIMAL は DEC と指定することもできます。どの構文を使用する場合でも、データ型は DECIMAL と記述されます。
使用する精度が 20 以下で小数点以下の桁数が 0 の場合、代わりに整数データ型のいずれか (BIGINT、INTEGER、SMALLINT、または TINYINT) を使用できることがあります。整数値では、有効桁数が同じくらいの NUMERIC 値や DECIMAL 値よりも少ない記憶領域が使用されます。整数値の操作 (フェッチ、挿入など) や算術演算子は、通常、NUMERIC 値や DECIMAL 値の操作よりも速く実行されます。
セマンティック上、DECIMAL は NUMERIC と同じです。
DECIMAL データ型のカラムまたは変数を作成するとき、これらのカラムまたは変数の精度または位取りがデータベースの精度および位取りの設定を超過する場合は 、値はデータベースの設定に合わせてトランケートされます。このため、DECIMAL として定義されているカラムまたは変数の値がトランケートされる場合は、精度と位取りがデータベースのオプション設定を超過していないかどうかを確認します。
SQL/2008 DECIMAL データ型と NUMERIC データ型は、SQL/2008 標準のコア機能です。