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,需注意得是超出范圍和溢出處理


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM