Tinyint/ smallint/ mediumint/int/ bigint(M) unsigned zerofill

整型系列所占字节与存储范围的关系.

定性: 占字节越多,存储范围越大.

Tinyint 1个字节 8个位  0 - 2^8-1  ,  0-255

                -2^7 ----> +2^7-1

分析:

Smallint 2个字节 , 16位  0----2^16-1 = 65535

                -2^15 ---> +2^15-1, -32768 -> 32767

一般而言,设某类型 N字节

N字节 , 8N位.

0 ----> 2^8N-1

-2^(8N-1)  ---> +2^(8N-1) -1;

对于int型 : 占的字节越多,存储的范围也越大.

整型系统的可选参数 : XXint(M)  unsigned zerofill

例: age tinyint(4) unsigned ,或者  stunum smallint(6) zerofill;

Unsigned: 代表此列为无符号类型, 会影响到列的存储范围. (范围从0开始)

(不加unsinged, 则该列默认是有符号类型,范围从负数开始)

Zerofill: 代表0填充, 即: 如果该数字不足参数M位, 则自动补0, 补够M位.

1: 如果没有zerofill属性, 单独的参数M,没有任何意义.

2:如果设置某列为zerofill,则该列已经默认为 unsigned,无符号类型.

原文地址:https://www.cnblogs.com/zy2012/p/2847187.html