MySQL中int (10) 和 int (11) 的区别


Posted in MySQL onJanuary 22, 2022

mysql 中整数数据类型:

MySQL中int (10) 和 int (11) 的区别

不同类型的取值范围:

MySQL中int (10) 和 int (11) 的区别

不同数据类型的默认v显示宽度:

MySQL中int (10) 和 int (11) 的区别

显示的宽度跟负号没有关系,它只在人工设置了 ZEROFILL 属性有效。一旦人工设置了 ZEROFILL 属性,MySQL 会自动设置 UNSIGNED 属性(即 ZEROFILL 不能存储负数)。

那取值范围和显示宽度到底有什么关系呢?利用 tinyint 做了个实验,

首先创建一张表如下:

mysql> desc test_integer;
+-----------+------------+------+-----+---------+----------------+
| Field     | Type       | Null | Key | Default | Extra          |
+-----------+------------+------+-----+---------+----------------+
| id        | int(11)    | NO   | PRI | NULL    | auto_increment |
| test_id_1 | tinyint(1) | NO   |     | NULL    |                |
| test_id_2 | tinyint(4) | NO   |     | NULL    |                |
+-----------+------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)

我分别创建了有符号 tinyint 类型的 test_id_1 显示宽度为 1 和 test_id_2 显示宽度为 4 两字段,接下来插入数据,同时插入 - 128、1 和 127 这些数值,看看会怎么样。

mysql> insert into test_integer (test_id_1,test_id_2) values (-128,-128), (1,1), (127,127);
Query OK, 3 rows affected (0.00 sec)
Records: 3  Duplicates: 0  Warnings: 0

ok 提示插入成功,我们查询一下

mysql> select * from test_integer;
+----+-----------+-----------+
| id | test_id_1 | test_id_2 |
+----+-----------+-----------+
|  1 |      -128 |      -128 |
|  2 |         1 |         1 |
|  3 |       127 |       127 |
+----+-----------+-----------+
3 rows in set (0.00 sec)

查询出来的结果也是一样,经过以上实验得到结论:
显示宽度整数类型的取值范围是无关的。显示宽度只是指明 mysql 最大可能显示的数字个数,数值的位数小于指定的宽度时左侧用数字 0 填充。
如果插入了大于显示宽度的值,只要该值不超过该类型整数的取值范围,数值依然可以插入,而且能够显示出来。

同理,所以 int (10) 和 int (11) 无任何区别,就是显示宽度不同。在存储方面确实没什么不同,设置长度只有在设置了自动填充 ZEROFILL 的时候才体现出来, 比如 id=1 长度为 int (5) 的话会显示 00001。
Mysql 可以为整数类型指定宽度,例如 INT (11),对大多数应用这是没有意义的:他不会限制值的合法范围,只是规定了 Mysql 的一些交互工具,如 Mysql 命令行客户端,用来显示字符的个数。对于存储和运算来说, INT (1) 和 INT (8) 是相同的。
是的,设置自动填充的时候用来显示补充0有点 用而已

到此这篇关于MySQL中int (10) 和 int (11) 的区别的文章就介绍到这了,更多相关MySQL int (10) 和 int (11) 的区别内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

MySQL 相关文章推荐
教你用eclipse连接mysql数据库
Apr 22 MySQL
MySQL 数据丢失排查案例
May 08 MySQL
mysql 8.0.24 安装配置方法图文教程
May 12 MySQL
MySQL 隔离数据列和前缀索引的使用总结
May 14 MySQL
MySQL触发器的使用
May 24 MySQL
Mysql中存储引擎的区别及比较
Jun 04 MySQL
mysql联合索引的使用规则
Jun 23 MySQL
MySQL高速缓存启动方法及参数详解(query_cache_size)
Jul 01 MySQL
MySQL的存储函数与存储过程的区别解析
Apr 08 MySQL
mysql中关键词exists的用法实例详解
Jun 10 MySQL
mysql sock文件存储了什么信息
Jul 15 MySQL
SQLServer常见数学函数梳理总结
Aug 05 MySQL
JMeter对MySQL数据库进行压力测试的实现步骤
MySQL创建定时任务
Jan 22 #MySQL
SQL基础查询和LINQ集成化查询
Jan 18 #MySQL
MySQL常见优化方案汇总
Jan 18 #MySQL
mysql sum(if())和count(if())的用法说明
SQL语法CONSTRAINT约束操作详情
Jan 18 #MySQL
MySQL笔记 —SQL运算符
Jan 18 #MySQL
You might like
收音机鉴频器对声音的影响和频偏分析
2021/03/02 无线电
php版微信js-sdk支付接口类用法示例
2016/10/12 PHP
PHP判断表达式中括号是否匹配的简单实例
2016/10/22 PHP
Yii2汉字转拼音类的实例代码
2017/04/18 PHP
js 页面刷新location.reload和location.replace的区别小结
2009/12/24 Javascript
firefox firebug中文入门教程 脚本之家新年特别版
2010/01/02 Javascript
node.js中使用node-schedule实现定时任务实例
2014/06/03 Javascript
node.js中的console.log方法使用说明
2014/12/09 Javascript
webpack4.0 入门实践教程
2018/10/08 Javascript
教你搭建按需加载的Vue组件库(小结)
2019/07/29 Javascript
vue实现节点增删改功能
2019/09/26 Javascript
vue+element使用动态加载路由方式实现三级菜单页面显示的操作
2020/08/04 Javascript
js基于canvas实现时钟组件
2021/02/07 Javascript
[46:20]DOTA2-DPC中国联赛 正赛 PSG.LGD vs LBZS BO3 第二场 1月22日
2021/03/11 DOTA
在Python中使用HTMLParser解析HTML的教程
2015/04/29 Python
对python3新增的byte类型详解
2018/12/04 Python
Python 实现中值滤波、均值滤波的方法
2019/01/09 Python
python下PyGame的下载与安装过程及遇到问题
2019/08/04 Python
python异常处理和日志处理方式
2019/12/24 Python
Python数据可视化处理库PyEcharts柱状图,饼图,线性图,词云图常用实例详解
2020/02/10 Python
Python函数默认参数常见问题及解决方案
2020/03/26 Python
Python 解析xml文件的示例
2020/09/29 Python
如何让pre和textarea等HTML元素去掉滚动条自动换行自适应文本内容高度
2019/08/01 HTML / CSS
size?丹麦官网:英国伦敦的球鞋精品店
2019/04/15 全球购物
工商学院毕业生个人自我评价
2013/09/19 职场文书
销售心得体会
2014/01/02 职场文书
模具设计与制造专业推荐信
2014/02/16 职场文书
施工安全责任书
2014/04/14 职场文书
机关驾驶员违规检讨书
2014/09/13 职场文书
个人授权委托书样本
2014/09/13 职场文书
新员工辞职信范文
2015/05/12 职场文书
微信早安问候语
2015/11/10 职场文书
小学生优秀作文范文(六篇)
2019/07/10 职场文书
javascript代码简写的几种常用方式汇总
2021/08/23 Javascript
如何通过一篇文章了解Python中的生成器
2022/04/02 Python
Redis特殊数据类型bitmap位图
2022/06/01 Redis