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数字类型自增的坑
May 07 MySQL
MySQL EXPLAIN输出列的详细解释
May 12 MySQL
MySQL查看表和清空表的常用命令总结
May 26 MySQL
MySQL 如何设计统计数据表
Jun 15 MySQL
分析mysql中一条SQL查询语句是如何执行的
Jun 21 MySQL
MySQL系列之四 SQL语法
Jul 02 MySQL
MySQL索引是啥?不懂就问
Jul 21 MySQL
关于mysql中时间日期类型和字符串类型的选择
Nov 27 MySQL
JMeter对MySQL数据库进行压力测试的实现步骤
Jan 22 MySQL
MySQL创建表操作命令分享
Mar 25 MySQL
MySQL数据库如何使用Shell进行连接
Apr 12 MySQL
MySQL导致索引失效的几种情况
Jun 25 MySQL
深入解析MySQL索引数据结构
MySQL数据库必备之条件查询语句
Oct 15 #MySQL
MySQL实例精讲单行函数以及字符数学日期流程控制
MySQL数据库超时设置配置的方法实例
MyBatis 动态SQL全面详解
MySQL中datetime时间字段的四舍五入操作
mysql如何能有效防止删库跑路
Oct 05 #MySQL
You might like
解析关于java,php以及html的所有文件编码与乱码的处理方法汇总
2013/06/24 PHP
php堆排序(heapsort)练习
2013/11/13 PHP
Drupal读取Excel并导入数据库实例
2014/03/02 PHP
PHP错误和异长常处理总结
2014/03/06 PHP
php二维码生成
2015/10/19 PHP
php生成图片缩略图功能示例
2017/02/22 PHP
网页javascript精华代码集
2007/01/24 Javascript
JS在可编辑的div中的光标位置插入内容的方法
2014/11/20 Javascript
js实现有过渡渐变效果的图片轮播相册(兼容IE,ff)
2016/01/19 Javascript
JS控制FileUpload的上传文件类型实例代码
2016/10/07 Javascript
JS限制条件补全问题实例分析
2016/12/16 Javascript
简单实现js菜单栏切换效果
2017/03/04 Javascript
深究AngularJS如何获取input的焦点(自定义指令)
2017/06/12 Javascript
js实现星星海特效的示例
2020/09/28 Javascript
Python Web框架Flask信号机制(signals)介绍
2015/01/01 Python
解决Pandas to_json()中文乱码,转化为json数组的问题
2018/05/10 Python
numpy基础教程之np.linalg
2019/02/12 Python
flask 实现token机制的示例代码
2019/11/07 Python
在python shell中运行python文件的实现
2019/12/21 Python
Python实现搜索算法的实例代码
2020/01/02 Python
Python PyQt5模块实现窗口GUI界面代码实例
2020/05/12 Python
Jupyter notebook命令和编辑模式常用快捷键汇总
2020/11/17 Python
CSS3图片旋转特效(360/60/-360度)
2013/10/10 HTML / CSS
基于HTML5的WebGL实现json和echarts图表展现在同一个界面
2017/10/26 HTML / CSS
Boutique 1美国:阿联酋奢侈时尚零售商
2017/10/16 全球购物
世界领先的豪华床上用品供应商之一:Bedeck Home
2019/03/18 全球购物
经典导游欢迎词大全
2014/01/16 职场文书
教师一岗双责责任书
2014/04/16 职场文书
数学兴趣小组活动总结
2014/07/08 职场文书
2014国庆节主题活动方案:快乐的国庆节
2014/09/16 职场文书
高三英语教学计划
2015/01/23 职场文书
老乡聚会通知
2015/04/23 职场文书
防暑降温通知书
2015/04/27 职场文书
准备去美国留学,那么大学申请文书应该怎么写?
2019/08/12 职场文书
Oracle 数据仓库ETL技术之多表插入语句的示例详解
2021/04/12 Oracle
springboot+zookeeper实现分布式锁
2022/03/21 Java/Android