数据库中INT类型概述

文章目录

一. 背景

  • 在设计数据库表的时候,如果字段是数值型,经常会有几个选项(tinyint [unsigned]smallint [unsigned]mediumint [unsigned]int [unsigned]bigint [unsigned]),但总不知道该使用哪个类型,下面总结了一下。

二. INT类型的总结

1. 概述

数值类型占用字节数据范围无符号数据范围
tinyint1-128~1270~255
smallint2-32768~327670~65535
mediumint3-8388608~83886070~16777215
int4-2147483648~21474836470~4294967295
bigint8-9223372036854775808~92233720368547758070~18446744073709551615

2. 详述

  • 说明:1 bytes = 8 bit,因此一个字节最多可以代表的数据长度是2的8次方(11111111),转换为实际值即-128到127。

2.1 bit[M]

  1. 概述:位字段类型。
  2. M:表示每个值包含的位数,如bit(2)表示包含2位的一个值。M的范围是[1,64],如果M缺省,默认为1。

2.2 TINYINT([M])[unsigned][zerofill]

  1. 概述:很小的整数。
  2. M:默认为4。
  3. 数值范围
    • 带符号的范围:-128到127
    • 无符号的范围:0到255
  4. boolean类型:是TINYINT(1)的同义词。0值被视为假;非0值视为真。

2.3 SMALLINT([M])[unsigned][zerofill]

  1. 概述:小的整数。
  2. M:默认为6。
  3. 数值范围
    • 带符号的范围: -32768到32767
    • 无符号的范围:0到65535

2.4 MEDIUMINT([M])[unsigned][zerofill]

  1. 概述:中等大小的整数。
  2. M:默认为9。
  3. 数值范围
    • 带符号的范围: -8388608到8388607
    • 无符号的范围:0到16777215

2.5 INT([M])[unsigned][zerofill]

  1. 概述:普通大小的整数。
  2. M:默认为11。
  3. 数值范围
    • 带符号的范围: -2147483648到2147483647
    • 无符号的范围:0到4294967295

2.6 BIGINT([M])[unsigned][zerofill]

  1. 概述:大整数。
  2. M:默认为20。
  3. 数值范围
    • 带符号的范围: -9223372036854775808到9223372036854775807
    • 无符号的范围:0到18446744073709551615

3. 说明

  • M的含义:并不是指存储在数据库中的具体长度。只有同时指定了zerofill,M才会发挥作用,即左边用0来填充。
  • 示例:tinyint(1)和tinyint(2)的区别
CREATE TABLE `test` (                                  
          `id` int(11) NOT NULL AUTO_INCREMENT,                                                  
          `state1` tinyint(1) unsigned zerofill DEFAULT NULL,   
          `state2` tinyint(2) unsigned zerofill DEFAULT NULL,  
          `state3` tinyint(3) unsigned zerofill DEFAULT NULL,  
          `state4` tinyint(4) unsigned zerofill DEFAULT NULL,  
          PRIMARY KEY (`id`)                                   
        ) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=utf8  
 
insert into test (state1,state2,state3,state4) values(4,4,4,4);
select * from test;
  • 结果
idstate1state2state3state4
14040040004

参考资料

    原文作者:zijikanwa
    原文地址: https://blog.csdn.net/zijikanwa/article/details/109253796
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞