mysql中int(3)和int(10)的数值范围是否相同


Posted in MySQL onOctober 16, 2021

提问:

mysql的字段,unsigned int(3), 和unsinged int(6), 能存储的数值范围是否相同。如果不同,分别是多大?

回答:

不同,int(3)最多显示3位无符号整体,int(6)最多显示6位无符号数。

如果你的答案和上面的一致,恭喜你和我犯了一样的错误。

真实情况:

int类型整数占4个字节,有符号的范围为:-2^31 ~ 2^31-1,无符号整数范围为:0 ~ 2^32-1,既然都是无符号整数,那么存储范围是一样的,int(6)只是在数字不够6位时用0补全,如果超过6位,则不需要补全。

mysql中int(3)和int(10)的数值范围是否相同

我们建立下面这张表:

drop table if exists test;
CREATE TABLE `test` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `a` int(11) NOT NULL,
  `b` int(11) unsigned zerofill NOT NULL,
  `c` int(5) DEFAULT NULL,
  `d` int(5) unsigned zerofill NOT NULL,
  `e` int(15) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

插入一些数据后,用cmd命令行查看:

mysql> select * from test;
+----+------------+-------------+------------+------------+------------+
| id | a          | b           | c          | d          | e          |
+----+------------+-------------+------------+------------+------------+
|  1 |          1 | 00000000001 |          1 |      00001 |          1 |
|  2 | 1234567890 | 01234567890 | 1234567890 | 1234567890 | 1234567890 |
+----+------------+-------------+------------+------------+------------+

发现,无论是int(3), int(6), 都可以显示6位以上的整数。但是,当数字不足3位或6位时,前面会用0补齐。

注意:如果你是用类似navicat这种工具看,不会补充0,可能做了处理,需要用mysql cmd命令行才能看到这种效果。

查下手册,解释是这样的:

MySQL还支持选择在该类型关键字后面的括号内指定整数值的显示宽度(例如,INT(4))。该可选显示宽度规定用于显示宽度小于指定的列宽度的值时从左侧填满宽度。显示宽度并不限制可以在列内保存的值的范围,也不限制超过列的指定宽度的值的显示。

也就是说,int的长度并不影响数据的存储精度,长度只和显示有关,为了让大家看的更清楚,我们在上面例子的建表语句中,使用了zerofill。

知识点

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

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

BIT 数据类型保存位字段值,并且支持 MyISAM、MEMORY、InnoDB 和 BDB表。 作为 SQL 标准的扩展,MySQL 也支持整数类型TINYINT、MEDIUMINT 和 BIGINT。下面的表显示了需要的每个整数类型的存储和范围。

结论:

无论是unsigned int(3)或 unsiend int(6),存储的都是4字节无符号整数, 也就是0~2^32。

总结

到此这篇关于mysql中int(3)和int(10)的数值范围是否相同的文章就介绍到这了,更多相关mysql int(3)和int(10)数值范围内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

MySQL 相关文章推荐
MySQL 视图(View)原理解析
May 19 MySQL
linux下导入、导出mysql数据库命令的实现方法
May 26 MySQL
MySQL 百万级数据的4种查询优化方式
Jun 07 MySQL
mysql获取指定时间段中所有日期或月份的语句(不设存储过程,不加表)
Jun 18 MySQL
mysql优化之query_cache_limit参数说明
Jul 01 MySQL
MyBatis 动态SQL全面详解
Oct 05 MySQL
记一次Mysql不走日期字段索引的原因小结
Oct 24 MySQL
Mysql排序的特性详情
Nov 01 MySQL
MySQL数据库查询进阶之多表查询详解
Apr 08 MySQL
Mysql 8.x 创建用户以及授予权限的操作记录
Apr 18 MySQL
MySQL数据库Innodb 引擎实现mvcc锁
May 06 MySQL
MySQL导致索引失效的几种情况
Jun 25 MySQL
深入解析MySQL索引数据结构
MySQL数据库必备之条件查询语句
Oct 15 #MySQL
MySQL实例精讲单行函数以及字符数学日期流程控制
MySQL数据库超时设置配置的方法实例
MyBatis 动态SQL全面详解
MySQL中datetime时间字段的四舍五入操作
mysql如何能有效防止删库跑路
Oct 05 #MySQL
You might like
国外十大最流行的PHP框架排名
2013/07/04 PHP
PHP的Yii框架的基本使用示例
2015/08/21 PHP
基于thinkPHP类的插入数据库操作功能示例
2017/01/06 PHP
laravel框架上传图片实现实时预览功能
2019/10/14 PHP
ExtJS 设置级联菜单的默认值
2010/06/13 Javascript
js获取触发事件元素在整个网页中的绝对坐标(示例代码)
2013/12/13 Javascript
C++中的string类的用法小结
2015/08/07 Javascript
贴近用户体验的Jquery日期、时间选择插件
2015/08/19 Javascript
JavaScript如何实现跨域请求
2016/08/05 Javascript
HTML页面定时跳转方法解析(2种任选)
2016/12/22 Javascript
js+html5实现侧滑页面效果
2017/07/15 Javascript
js学习总结之DOM2兼容处理this问题的解决方法
2017/07/27 Javascript
浅谈JS 数字和字符串之间相互转化的纠纷
2017/10/20 Javascript
js 获取json数组里面数组的长度实例
2017/10/31 Javascript
nodejs结合socket.io实现websocket通信功能的方法
2018/01/12 NodeJs
vue 实现购物车总价计算
2019/11/06 Javascript
js正则表达式简单校验方法
2021/01/03 Javascript
Bootstrap FileInput实现图片上传功能
2021/01/28 Javascript
Python 初始化多维数组代码
2008/09/06 Python
Python的Bottle框架的一些使用技巧介绍
2015/04/08 Python
人工智能最火编程语言 Python大战Java!
2017/11/13 Python
用python制作游戏外挂
2018/01/04 Python
用Pycharm实现鼠标滚轮控制字体大小的方法
2019/01/15 Python
对Pytorch中Tensor的各种池化操作解析
2020/01/03 Python
Python实现检测文件的MD5值来查找重复文件案例
2020/03/12 Python
python实例化对象的具体方法
2020/06/17 Python
CSS3中的Media Queries学习笔记
2016/05/23 HTML / CSS
CSS3.0实现霓虹灯按钮动画特效的示例代码
2021/01/12 HTML / CSS
前端实现打印图像功能
2019/08/27 HTML / CSS
乐高瑞士官方商店:LEGO CH
2020/08/16 全球购物
全球精选男装和家居用品:Article
2020/04/13 全球购物
Fanatics官网:运动服装、球衣、运动装备
2020/10/12 全球购物
协议书范本
2014/04/23 职场文书
文秘应届生求职信
2014/07/05 职场文书
纪律教育学习心得体会
2014/09/02 职场文书
医生行业员工的辞职信
2019/06/24 职场文书