mysql中int、bigint、smallint 和 tinyint的区别与长度

mysql中int、bigint、smallint 和 tinyint的区别与长度


 

上图说明了, 常用的整型类型之前的差别.

以int类型为例.

int类型, 占用4个字节, 有符号可表示的范围是(-2^31   ~  2^31-1 ), 无符号表示的范围是(0~2^32-1).

tinyint类型, 占用1个字节, 有符号表示范围是(-2^7 ~ 2^7-1), 无符号表示的范围是(0 ~ 2^8-1).

 

另外, int(M)在数据类型中, M表示最大显示宽度, 建表是设置了zerofill(0填充), 会在数字前面补充0.

int(M)中, M的值跟占用存储空间大小无关, 和int能表示的范围也无关. 只用来控制显示.

 

tinyint(M), M默认为4;

SMALLINT(M), M默认为6;

MEDIUMINT(M), M默认为9;

INT(M),M默认为11;

BIGINT(M),M默认为20.




带符号和无符号,顾名思义,就是是否有正负之分:
比如8为二进制,
如果带符号,需要用1位表示符号(1表示负数,0表示正),剩下7位表示数据.
那么表示范围是-127---127(包括-0和+0).
如果不带符号,8位全部表示数据,
那么表示范围是 0--256

你可能感兴趣的:(mysql中int、bigint、smallint 和 tinyint的区别与长度)