mysql中int类型的宽度M解析
来源:互联网 发布:mysql 索引失效 编辑:程序博客网 时间:2024/06/01 09:18
一直以来在MYSQL建表的时候都有一个困惑,那就是关于int类型。int(M)这个M代表什么?
比如我定义一个文章的主键news_id为int(8)为什么要定义为8?如果我存储一个位数为10的数3445667788,发现实际也是可以存储的。于是查看mysql的手册,发现有这样一段话:M指示最大显示宽度。最大有效显示宽度是255。显示宽度与存储大小或类型包含的值的范围无关。
显示宽度,我们可以理解为所存储数值的位数。比如我设置news_id为int(8),是告诉mysql我要存储的数值的最大位数是个8位数,但是如果存储的超过8位数,只要在int类型允许的范围内(signed类型-2147483648~2147483647,unsigned类型0~4294967295)也是可以存储的。比如:
从上面两个图可以看出,我存储了一个超过8位数的int类型数据,还是能够正常显示的。那么问题又来了,这个M既然只要我能保证在所属范围之内,我是不是可以随意去定义了,当然不是的。首先设置M肯定要跟实际的业务数据相关,多设置浪费存储空间。另外如果你设置了填充0,zerofill的话就可以看出一些端倪:
我们把news_id的宽度设置为3,然后再查看下看看:
我们看到值为1的左端填充了0,原来默认为0的变成了000.所以如果M设置为某个值,并且设置了zerofill的话,当存储的长度小于M的话,会自动填充0.所以有时项目里确实需要存储类似于001,002...的值时,这个M的设置要符合业务需求。对于tinyint,mediumint,bigint等一样的理解。
相比较来说,char(n)和varchar(n)类型的这个n代表实际的存储长度,超过了会被mysql截掉。还是有所区别的。
- mysql中int类型的宽度M解析
- mysql中int(M)中的M的含义
- MySQL数据类型 int(M)中M含义
- Mysql中int(M)、tinyint(M)的M详解
- mysql int(m)与int(m)的区别
- C#中int类型解析
- MySQL中int类型详解
- mysql优化-- int类型解析及其优化
- mysql中int、bigint、smallint 和 tinyint的区别与显示宽度的含义
- mysql中timestamp,datetime,int类型的区别与优劣
- mysql中timestamp,datetime,int类型的区别与优劣
- mysql中timestamp,datetime,int类型的区别与优劣
- mysql中的int(M)
- MySQL int(M)了解
- mysql之整数类型的显示宽度
- MySQL中varchar类型转int
- mysql int(x) 显示宽度
- mysql 显示宽度 int(11)
- Linux__添加用户(循环登录)
- HHU 1013 冒险游戏(risk_ganme)(动态规划)
- 【NOIP2013】洛谷1979 华容道
- android多线程下载
- R语言分类变量转换为哑变量(dummy vairable)
- mysql中int类型的宽度M解析
- cygwin上的telnet安装
- PHP无限极分类
- Tensorflowan安装详解
- Android Fragment 真正的完全解析(下)
- 协方差矩阵相关概念、性质、应用意义及矩阵特征向量的用处
- STS+maven 设置项目默认的jdk版本
- MAC 创建 /home 文件夹
- 《UNIX网络编程》第一章——一个简单的时间获取客户端/服务器程序