JieHui.Long Blog

unsigned 对于tinyint、smallint、mediumint、int、bigint 都有什么不同吧


需要学的东西太多了,学不完技术更是如此。毕竟时间有限更多知识还是来源自工作吧。今天要给ECSHOP加入大数据,结果出现问题了,只有cat_id只有65535,很奇怪明明没有这个限制啊。后来发现字段是 smallint,但是找到对应的说明,smallint取值范围是 -32768 到32767。怎么会有65535呢,在看了字段结构后发现 unsigned 属性。这个就要调查下了~一直认为是强制整型原来 不是,是一个弥补不足的会增大数值,也就是如smallint会把负值叠加到正值上也就是65535了~~~这下明白了,那么接下来看看 unsigned 对于tinyint、smallint、mediumint、int、bigint 都有什么不同吧。


类型说明

取值范围

tinyint[(m)]

有符号值:-128 到127(- 27 到27 - 1)

无符号值:0到255(0 到28 - 1) 1个字节

smallint[(m)]

有符号值:-32768 到32767(- 215 到215 - 1)

无符号值:0到65535(0 到21 6 - 1) 2个字节

mediumint[(m)]

有符号值:-8388608 到8388607(- 22 3 到22 3 - 1 )

无符号值:0到16777215(0 到22 4 - 1) 3个字节

int[(m)]

有符号值:-2147683648 到2147683647(- 231 到231- 1)

无符号值:0到4294967295(0 到232 - 1) 4个字节

bigint[(m)]

有符号值:-9223372036854775808 到9223373036854775807(- 263到263-1)

无符号值:0到18446744073709551615(0到264 – 1) 8个字节




侧栏导航
×
Amaze UI 微信
在微信上关注我们