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 18 MySQL
浅谈mysql返回Boolean类型的几种情况
Jun 04 MySQL
新手入门Mysql--sql执行过程
Jun 20 MySQL
mysql创建存储过程及函数详解
Dec 04 MySQL
教你使用VS Code的MySQL扩展管理数据库的方法
Jan 22 MySQL
MySQL优化及索引解析
Mar 17 MySQL
数据分析数据库ClickHouse在大数据领域应用实践
Apr 03 MySQL
mysql的单列多值存储实例详解
Apr 05 MySQL
mysql5.5中文乱码问题解决的有用方法
May 30 MySQL
MySQL中order by的执行过程
Jun 05 MySQL
MySQL详细讲解变量variables的用法
Jun 21 MySQL
MySQL数据库表约束讲解
Jun 21 MySQL
深入解析MySQL索引数据结构
MySQL数据库必备之条件查询语句
Oct 15 #MySQL
MySQL实例精讲单行函数以及字符数学日期流程控制
MySQL数据库超时设置配置的方法实例
MyBatis 动态SQL全面详解
MySQL中datetime时间字段的四舍五入操作
mysql如何能有效防止删库跑路
Oct 05 #MySQL
You might like
Codeigniter发送邮件的方法
2015/03/19 PHP
php查询whois信息的方法
2015/06/08 PHP
PHP 7.4中使用预加载的方法详解
2019/07/08 PHP
用js生产批量批处理执行命令
2008/07/28 Javascript
超级24小时弹窗代码 24小时退出弹窗代码 100%弹窗代码(IE only)
2010/06/11 Javascript
JavaScript高级程序设计 读书笔记之十一 内置对象Global
2012/03/07 Javascript
Jquery实现弹出层分享微博插件具备动画效果
2013/04/03 Javascript
JS中实现replaceAll的方法(实例代码)
2013/11/12 Javascript
jQuery CSS()方法改变现有的CSS样式
2014/08/20 Javascript
基于JQuery制作可编辑的表格特效
2014/12/23 Javascript
jQuery仿360导航页图标拖动排序效果代码分享
2015/08/24 Javascript
jquery实现点击变换导航样式的方法
2015/08/31 Javascript
js实现点击图片自动提交action的简单方法
2016/10/16 Javascript
JS自定义函数对web前端上传的文件进行类型大小判断
2016/10/19 Javascript
Vue.js对象转换实例
2017/06/07 Javascript
JavaScript实现的反序列化json字符串操作示例
2018/07/18 Javascript
微信小程序利用button控制条件标签的变量问题
2020/03/15 Javascript
解决vue组件销毁之后计时器继续执行的问题
2020/07/21 Javascript
原生js实现表格翻页和跳转
2020/09/29 Javascript
Python使用xlrd读取Excel格式文件的方法
2015/03/10 Python
python版本单链表实现代码
2018/09/28 Python
Python字符串逆序的实现方法【一题多解】
2019/02/18 Python
python实现邮件循环自动发件功能
2020/09/11 Python
pyx文件 生成pyd 文件用于 cython调用的实现
2021/03/04 Python
纯css3实现的动画按钮的实例教程
2014/11/17 HTML / CSS
印度最好的在线药品订购网站:PharmEasy
2018/11/30 全球购物
Hammitt官网:设计师手袋
2020/05/23 全球购物
幼儿教师个人求职信范文
2013/09/21 职场文书
教师自我鉴定范文
2014/03/20 职场文书
小学生期末评语
2014/04/21 职场文书
2014教育局对照检查材料思想汇报
2014/09/23 职场文书
四年级学生期末评语
2014/12/26 职场文书
幼儿园小班教师个人工作总结
2015/02/06 职场文书
安全教育主题班会教案
2015/08/12 职场文书
李清照的诗词赏析(20首)
2019/08/22 职场文书
python删除csv文件的行列
2021/04/06 Python