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主从复制断开的常用修复方法
Apr 07 MySQL
mysql数据库入门第一步之创建表
May 14 MySQL
MySQL 覆盖索引的优点
May 19 MySQL
新手入门Mysql--概念
Jun 18 MySQL
MySQL系列之三 基础篇
Jul 02 MySQL
ORM模型框架操作mysql数据库的方法
Jul 25 MySQL
MySQL 如何限制一张表的记录数
Sep 14 MySQL
mysql主从复制的实现步骤
Oct 24 MySQL
面试提问mysql一张表到底能存多少数据
Mar 13 MySQL
Mysql调整优化之四种分区方式以及组合分区
Apr 13 MySQL
Mysql中@和@@符号的详细使用指南
Jun 05 MySQL
mysql数据库实现设置字段长度
Jun 10 MySQL
深入解析MySQL索引数据结构
MySQL数据库必备之条件查询语句
Oct 15 #MySQL
MySQL实例精讲单行函数以及字符数学日期流程控制
MySQL数据库超时设置配置的方法实例
MyBatis 动态SQL全面详解
MySQL中datetime时间字段的四舍五入操作
mysql如何能有效防止删库跑路
Oct 05 #MySQL
You might like
php 404错误页面实现代码
2009/06/22 PHP
CI框架常用经典操作类总结(路由,伪静态,分页,session,验证码等)
2016/11/21 PHP
PHP7修改的函数
2021/03/09 PHP
select 控制网页内容隐藏于显示的实现代码
2010/05/25 Javascript
jqGrid增加时--判断开始日期与结束日期(实例解析)
2013/11/08 Javascript
Javascript中神奇的this
2016/01/20 Javascript
详解Angular的双向数据绑定(MV-VM)
2016/12/26 Javascript
nodejs开发——express路由与中间件
2017/03/24 NodeJs
简单理解Vue中的nextTick方法
2018/01/30 Javascript
基于express中路由规则及获取请求参数的方法
2018/03/12 Javascript
Vue中android4.4不兼容问题的解决方法
2018/09/04 Javascript
vue实现移动端悬浮窗效果
2018/12/01 Javascript
tsconfig.json配置详解
2019/05/17 Javascript
jquery实现广告上下滚动效果
2021/03/04 jQuery
[03:40]2014DOTA2国际邀请赛 B神专访:躲箭真的很难
2014/07/13 DOTA
[52:41]OG vs IG 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/20 DOTA
Python异常处理总结
2014/08/15 Python
python根据出生日期获得年龄的方法
2015/03/31 Python
python使用knn实现特征向量分类
2018/12/26 Python
pyshp创建shp点文件的方法
2018/12/31 Python
centos 安装Python3 及对应的pip教程详解
2019/06/28 Python
python绘制双Y轴折线图以及单Y轴双变量柱状图的实例
2019/07/08 Python
python连接mysql有哪些方法
2020/06/24 Python
浅谈OpenCV中的新函数connectedComponentsWithStats用法
2020/07/05 Python
Python生成器传参数及返回值原理解析
2020/07/22 Python
STUBHUB日本:购买和出售全球活动门票
2018/07/01 全球购物
某公司部分笔试题
2013/11/05 面试题
毕业生个人求职的自我评价
2013/10/28 职场文书
刘胡兰的英雄事迹材料
2014/02/11 职场文书
信用社竞聘演讲稿
2014/05/16 职场文书
行政部经理助理岗位职责
2014/06/15 职场文书
幸福家庭事迹材料
2014/12/20 职场文书
小鞋子观后感
2015/06/05 职场文书
社区结对共建协议书
2016/03/23 职场文书
抖音短视频(douyin)去水印工具的实现代码
2021/03/30 Javascript
SQLServer权限之只开启创建表权限
2022/04/12 SQL Server