MySQL 9.0 版本注意事項
本節討論 DECIMAL
資料類型(及其同義詞)的特性,特別是關於下列主題:
最大位數
儲存格式
儲存需求
MySQL 對於
DECIMAL
資料行上限範圍的非標準擴充功能
DECIMAL
資料行的宣告語法為 DECIMAL(
。引數的值範圍如下:M
,D
)
M
是最大位數(精確度)。範圍為 1 到 65。D
是小數點右邊的位數(小數位數)。範圍為 0 到 30,且不得大於M
。
如果省略 D
,則預設值為 0。如果省略 M
,則預設值為 10。
M
的最大值為 65 表示 DECIMAL
值的計算精確度最高可達 65 位數。精確度達 65 位數的限制也適用於精確值數值常值,因此此類常值的最大範圍與之前不同。(DECIMAL
常值的文字長度也有限制;請參閱第 14.25.3 節「運算式處理」。)
DECIMAL
資料行的值會以二進位格式儲存,該格式會將九個十進位數字封裝成 4 個位元組。每個值的整數和小數部分的儲存需求是分開判定的。每九位數字需要 4 個位元組,任何剩餘的位數則需要 4 個位元組的部分。剩餘位數所需的儲存空間如下表所示。
剩餘位數 | 位元組數 |
---|---|
0 | 0 |
1–2 | 1 |
1 | 2 |
3–4 | 3 |
2 | 4 |
5–6
3