MySQL 5.6での小数
デタ型(およびそのシノニム)の特性に,。
最大桁数
ストレジフォマット
ストレジ要件
小数
カラムの上限への非標準のMySQL拡張。
このセクション全体を通して,古いバージョン(5.0.3より前)のMySQLのために記述されたアプリケーションとの非互換性の可能性が記載されています。
小数
カラムの宣言構文は,小数(
です。米ySQL 5.6 での引数の値の範囲は次のとおりです。米
,D
)
米
は,最大桁数(精度)です。その範囲は1から65までです。(古いバジョンのMySQLでは1から254までの範囲が許可されました.)D
は,小数点の右側の桁数(スケ,ル)です。その範囲は0から30までであり,米
より大きくすることはできません。
米
が65の最大値である場合は,小数
値に対する計算が65桁まで正確であることを示します。65年この桁の精度の制限は厳密値数値リテラルにも適用されるため,このようなリテラルの最大範囲は以前とは異なります。(古いバージョンのMySQLでは,10進数値の最大桁数は254でした。ただし,計算は浮動小数点を使用して実行されたために厳密値ではなく,近似値でした)。
MySQL 5.6での小数
カラムの値は,9桁の10進数が4バe .トにパックされたバe .ナリ形式を使用して格納されます。各値の整数部と小数部に対するストレジ要件は個別に決定されます。9桁の繰り返しごとに4バイトが必要であり,残りの桁がある場合は,4バイトのうちの一部が必要になります。残りの桁に必要なストレジは,次の表で指定されます。
余りの桁 | バ邮箱ト数 |
---|---|
0 | 0 |
1 - 2 | 1 |
3 - 4 | 2 |
5 - 6 | 3. |
7号到9号 | 4 |
たとえば,小数(18、9)
カラムは小数点の両側に9桁あるため,整数部と小数部のそれぞれに4バinesトが必要です。小数(20,6)
カラムは整数部に14桁,小数部に6桁あります。整数部の桁は,そのうちの9桁に4バイト,残りの5桁に3バイトが必要です。小数部の6桁には3バトが必要です。
一部の古いバジョンのMySQLとは異なり,MySQL 5.6での小数
カラムには,先頭の+
文字や-
文字,または先頭の0
の桁が格納されません。小数(5、1)
カラムに+ 0003.1
を挿入すると,それは3.1
として格納されます。負の数の場合,リテラルの-
文字は格納されません。古い動作に依存するアプリケションは,この変更が反映されるように変更する必要があります。
MySQL 5.6での小数
カラムでは,カラム定義によって暗黙的に指定された範囲を超える値が許可されません。たとえば,小数(0)
カラムは-999年
から999
までの範囲をサポトします。小数(
カラムでは,小数点の左側に許可されるのは多くても米
,D
)米
-D
桁です。これは,+
記号の代わりに追加の桁の格納が許可されていた古いバージョンのMySQLに依存するアプリケーションとは互換性がありません。
SQL標準では,数字(
の精度は正確に米
,D
)米
桁である必要があります。小数(
の場合,この標準では少なくとも米
,D
)米
桁の精度が必要ですが,それを超える精度が許可されます。MySQLでは,小数(
と米
,D
)数字(
は同じであり,どらも正確に米
,D
)米
桁の精度を持っています。
小数
値の内部形式の完全な説明に,MySQL字符串/ decimal.c
を参照してください。この形式は,decimal2bin ()
関数で(例を使用して)説明されています。
小数
デタ型の古い処理に依存するアプリケションの移植の詳細は,”MySQL 5.0リファレンスマニュアルを参照してください。