列類型: 1. 數值型 整數類型: tip: 在定義時,可使用unsigned標識沒有符號,若不寫就認為是有符號。 下圖為在表tb_int中,插入在正確範圍內的數值的事例: 當試圖插入超範圍的數值時,會出現下圖中的錯誤提示: 除了可以定義以上數值類型,還可以定義顯示寬度(通過規定顯示寬度,達到統一顯 ...
列類型:
1. 數值型
- 整數類型:
類型 | 占用位元組數 | 最小值(有符號/無符號) | 最大值(有符號/無符號) |
TINYINT | 1 | -128 / 0 | 127 / 255 |
SMALLINT | 2 | -32768 / 0 | 32767 / 65535 |
MEDIUMINT | 3 | -2147483648 / 0 | 214748647 / 4294967295 |
INT | 4 | -2147483648 / 0 | 2147483647 / 4294967295 |
BIGINT | 8 | -9223372036854775808 / 0 | 9223372036854775807 / 18446744073709551615 |
tip: 在定義時,可使用unsigned標識沒有符號,若不寫就認為是有符號。
下圖為在表tb_int中,插入在正確範圍內的數值的事例:
當試圖插入超範圍的數值時,會出現下圖中的錯誤提示:
除了可以定義以上數值類型,還可以定義顯示寬度(通過規定顯示寬度,達到統一顯示的目的)。
格式: 類型(M) M表示顯示的最小寬度
該屬性通常需要前導零填充來達到目的,成為zerofill。
在tb_int中增加列c,規定其顯示寬度最小為2;
插入以下數據,觀察結果:
布爾bool類型,相當於tinyint(1)的別名。MySQL中認為0表示false,非0值表示true。
- 小數類型 (浮點數+定點數)
浮點數(小數點可以改變):
單精度(4位元組):float(預設精度位數為6位左右)
雙精度(8位元組):double(預設精度位數為16位左右)
支持科學計數法:123.56*10^3 要寫成 123.56E3 的形式
可以按下圖的方式創建表tb_2:
其實,在創建表tb_2時,通常會採用另一種方式,便於控制數值的範圍:
其中,float(5,2)表示a這一列輸入的數值,總的位數不可超過5位,其中小數最多2位,整數部分最多3位;
double(8,3)同理。
當輸入符合上述規定的兩個數時,會發現輸出如下圖:
float(5,3)能表示的數值的範圍是 -999.99~999.99 。
用科學計數法形式插入數據,顯示的結果如下圖:
定點數(小數位數固定):定點數的保存並不是確切占多少位元組,而是變長的(大致是每9個數字,採用4位元組存儲)
decimal(M,D):M表示總位數,D表示小數位數,範圍也存在,通過M和D控制
M預設為10,D預設為0 。
定點數和浮點數也都支持zerofill,浮點數也支持unsigned。