sql定义表时,int(10)是什么意思?

int(M) M表示最大显示宽度。最大有效显示宽度是255。显示宽度与存储大小或类型包含的值的范围无关。 

在 int(M) 中,M 的值跟 int(M) 所占多少存储空间并无任何关系。 int(1)、int(4)、int(10) 在磁盘上都是占用 4 bytes 的存储空间。 

说白了,除了显示给用户的方式有点不同外,int(M) 跟 int 数据类型是相同的。

这里的定义需要与zerofill配合使用,如果启用了zerofill,就是当数值的位数<M的时候,左侧自动以0补齐,>M的时候没有任何作用,如果启用了zerofill,程序中对查询出的int值需要做intval处理才能正确使用,其实是一件比较坑爹的事情,所以基本没有人这么用

如果int的值为10 
int(10)显示结果为0000000010 
int(3)显示结果为010 
就是显示的长度不一样而已,但都是占用四个字节的空间。

MySQL支持所有标准SQL数值数据类型。这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似数值数据类型(FLOAT、REAL和DOUBLE PRECISION)。 
关键字INT是INTEGER的同义词,关键字DEC是DECIMAL的同义词。


参考:

1、https://blog.csdn.net/imxiangzi/article/details/46535723

2、https://blog.csdn.net/yeruby/article/details/46391267

扫描二维码关注公众号,回复: 1466658 查看本文章

猜你喜欢

转载自blog.csdn.net/mysevenyear/article/details/80533806