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 相关文章推荐
多属性、多分类MySQL模式设计
Apr 05 MySQL
mysql在项目中怎么选事务隔离级别
May 25 MySQL
Mysql中存储引擎的区别及比较
Jun 04 MySQL
MySQL 如何设计统计数据表
Jun 15 MySQL
浅谈MySQL表空间回收的正确姿势
Oct 05 MySQL
mysql事务对效率的影响分析总结
Oct 24 MySQL
SQL 聚合、分组和排序
Nov 11 MySQL
Mysql外键约束的创建与删除的使用
Mar 03 MySQL
Mysql如何实现不存在则插入,存在则更新
Mar 25 MySQL
MySQL事务操作的四大特性以及并发事务问题
Apr 12 MySQL
pt-archiver 主键自增
Apr 26 MySQL
MySQL提升大量数据查询效率的优化神器
Jul 07 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
ThinkPHP采用实现三级循环代码实例
2014/07/18 PHP
PHP封装的MSSql操作类完整实例
2016/05/26 PHP
php实现基于PDO的预处理示例
2017/03/28 PHP
PHP实现网页内容html标签补全和过滤的方法小结【2种方法】
2017/04/27 PHP
简单三步,搞掂内存泄漏
2007/03/10 Javascript
filemanage功能中用到的lib.js
2007/04/08 Javascript
ANGULARJS中用NG-BIND指令实现单向绑定的例子
2014/12/08 Javascript
javascript中slice(),splice(),split(),substring(),substr()使用方法
2015/03/13 Javascript
js实现input框文字动态变换显示效果
2015/08/19 Javascript
整理一些最近经常遇到的前端面试题
2017/04/25 Javascript
node.js中 mysql 增删改查操作及async,await处理实例分析
2020/02/11 Javascript
深入了解JS之作用域和闭包
2020/06/16 Javascript
vue使用Sass时报错问题的解决方法
2020/10/14 Javascript
微信小程序:报错(in promise) MiniProgramError
2020/10/30 Javascript
Python数据结构与算法之二叉树结构定义与遍历方法详解
2017/12/12 Python
django框架自定义用户表操作示例
2018/08/07 Python
pygame游戏之旅 载入小车图片、更新窗口
2018/11/20 Python
python发送多人邮件没有展示收件人问题的解决方法
2019/06/21 Python
Django接收自定义http header过程详解
2019/08/23 Python
Python列表解析操作实例总结
2020/02/26 Python
详解Pycharm出现out of memory的终极解决方法
2020/03/03 Python
使用python-Jenkins批量创建及修改jobs操作
2020/05/12 Python
PyCharm配置anaconda环境的步骤详解
2020/07/31 Python
HTML5中的postMessage API基本使用教程
2016/05/20 HTML / CSS
size?德国官方网站:英国伦敦的球鞋精品店
2018/03/17 全球购物
be2台湾单身男女交友:全球网路婚姻介绍的领导品牌
2019/10/11 全球购物
中国领先的汽车保养服务平台:途虎养车
2019/10/18 全球购物
迪奥美国官网:Dior美国
2019/12/07 全球购物
双立人加拿大官网:Zwilling加拿大
2020/08/10 全球购物
思想政治自我鉴定
2013/10/06 职场文书
省三好学生申请材料
2014/01/22 职场文书
货车司机岗位职责
2014/03/18 职场文书
百货商场楼层班组长竞聘书
2014/03/31 职场文书
幼儿园大班见习报告
2014/10/31 职场文书
合作意向书范本
2019/04/17 职场文书
一篇文章带你学习Mybatis-Plus(新手入门)
2021/08/02 Java/Android