最近创建数据库表的时候,某些字段要用int、bigint、smallint、mediumint、tinyint的时候有点乱。今天就在网上仔细找了找,找到如下内容,留档做个总结:
1、BIGINT[(M)] [UNSIGNED] [ZEROFILL] M默认为20:
范围是 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据,存储大小为 8 个字节。
2、INT[(M)] [UNSIGNED] [ZEROFILL] M默认为11:
范围是 -2^31 (-2,147,483,648) 到 2^31 – 1 (2,147,483,647) 的整型数据,存储大小为 4 个字节。
3、MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL] M默认为9:
范围是 -8388608到8388607的整型数据
4、SMALLINT[(M)] [UNSIGNED] [ZEROFILL] M默认为6:
范围是 -2^15 (-32,768) 到 2^15 – 1 (32,767) 的整型数据。存储大小为 2 个字节。
4、TINYINT[(M)] [UNSIGNED] [ZEROFILL] M默认为4:
范围是 0 到 255 的整型数据。存储大小为 1 字节。
int(M) zerofill,加上zerofill后M才表现出有点点效果,比如 int(3) zerofill,你插入到数据库里的是10,则实际插入为010,也就是在前面补充加了一个0.如果int(3)和int(10)不加zerofill,则它们没有什么区别.M不是用来限制int个数的.int(M)的最大值和最小值与undesigned有关