tinyint、int的區別

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. 字節存儲範圍規則,1個字節佔8個比特位,比如tinyint(1),就是2的8次方=256,有符號他的範圍是-128128-1(-1是因爲0屬於有符號),無符號範圍是0256-1
  2. tinyint(1)、tinyint(4)佔用的字節都是一樣的,存儲範圍也是一樣的
  3. tinyint(4),當設置了zerofill的時候,前邊自動補0
  4. tinyint(4),當我們設置了zerofill的時候,插入數據1,只會顯示001,3位,因爲不管是有符號還是無符號,他的位數都是3位
  5. int(10)和int(11)同理,zerofill前邊補0,需注意得是超出範圍和溢出處理
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章