MySQL設置數值型列時,需要考慮到數值的范圍,所以,數值類型就必然需要考慮,以下為MySQL數值類型的存儲長度,當然存儲長度基本決定著其值域范圍。本文節選自MySQL官方網站,僅做匯總摘要整理。
1個字節存儲,范圍有符號-128-127,無符號0-255。還有一個類型是BOOL型,相當於TINYINT(1)。
2個字節存儲,范圍帶符號的范圍是-32768到32767。無符號的范圍是0到65535。
3個字節存儲,范圍帶符號的范圍是-8388608到8388607。無符號的范圍是0到16777215。
4個字節存儲,范圍帶符號的范圍是-2147483648到2147483647。無符號的范圍是0到4294967295。
8個字節存儲,范圍帶符號的范圍是-9223372036854775808到9223372036854775807。無符號的范圍是0到18446744073709551615。
如果0 <= p <= 24為4個字節, 如果25 <= p <= 53為8個字節
4個字節存儲,范圍允許的值是-3.402823466E+38到-1.175494351E-38、0和1.175494351E-38到3.402823466E+38。
8個字節存儲,范圍允許的值是-1.7976931348623157E+308到-2.2250738585072014E-308、0和2.2250738585072014E-308到 1.7976931348623157E+308。
壓縮的“嚴格”定點數,變長類型。M是小數位數(精度)的總數,D是小數點(標度)後面的位數。小數點和(負數)的‘-’符號不包括在M中。如果D是0,則值沒有小數點或分數部分。DECIMAL整數最大位數(M)為65。支持的十進制數的最大位數(D)是30。如果D被省略, 默認是0。如果M被省略, 默認是10。如果指定UNSIGNED,不允許負值。
大約(M+7)/8個字節存儲,M表示每個值的位數,范圍為從1到64。如果M被省略, 默認為1。