1.tinyint(1字節--4位【帶符號】)
很小的整數。帶符號的範圍是-128到127。無符號的範圍是0到255。
2.smallint(2字節--6位【帶符號】)
小的整數。帶符號的範圍是-32768到32767。無符號的範圍是0到65535。
3.mediumint(3字節--9位【帶符號】)
中等大小的整數。帶符號的範圍是-8388608到8388607。無符號的範圍是0到16777215。
4. int(4字節--11位【帶符號】)
普通大小的整數。帶符號的範圍是-2147483648到2147483647。無符號的範圍是0到4294967295。
5.bigint(9字節--20位【帶符號】)
大整數。帶符號的範圍是-9223372036854775808到9223372036854775807。無符號的範圍是0到18446744073709551615。
注意:以前總是會誤以爲int(3)只能存儲3個長度的數字,int(11)就會存儲11個長度的數字,這是大錯特錯的。
- tinyint(1) 和 tinyint(4) 中的1和4並不表示存儲長度,只有字段指定zerofill是有用,
- 如tinyint(4),如果實際值是2,如果列指定了zerofill,查詢結果就是0002,左邊用0來填充。
總結:
- 字節存儲範圍規則,1個字節佔8個比特位,比如tinyint(1),就是2的8次方=256,有符號他的範圍是-128128-1(-1是因爲0屬於有符號),無符號範圍是0256-1
- tinyint(1)、tinyint(4)佔用的字節都是一樣的,存儲範圍也是一樣的
- tinyint(4),當設置了zerofill的時候,前邊自動補0
- tinyint(4),當我們設置了zerofill的時候,插入數據1,只會顯示001,3位,因爲不管是有符號還是無符號,他的位數都是3位
- int(10)和int(11)同理,zerofill前邊補0,需注意得是超出範圍和溢出處理