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 相关文章推荐
jdbc使用PreparedStatement批量插入数据的方法
Apr 27 MySQL
MySQL 使用事件(Events)完成计划任务
May 24 MySQL
mysql在项目中怎么选事务隔离级别
May 25 MySQL
带你学习MySQL执行计划
May 31 MySQL
Mysql数据库索引面试题(程序员基础技能)
May 31 MySQL
MySQL命令无法输入中文问题的解决方式
Aug 30 MySQL
MySQL日期时间函数知识汇总
Mar 17 MySQL
MySQL限制查询和数据排序介绍
Mar 25 MySQL
提高系统的吞吐量解决数据库重复写入问题
Apr 23 MySQL
MySQL中order by的执行过程
Jun 05 MySQL
MySQL示例讲解数据库约束以及表的设计
Jun 16 MySQL
mysqldump进行数据备份详解
Jul 15 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
虫族 Zerg 热键控制
2020/03/14 星际争霸
Symfony2中被遗弃的getRequest()方法分析
2016/03/17 PHP
php+flash+jQuery多图片上传源码分享
2020/07/27 PHP
PHP获取文件扩展名的常用方法小结【五种方式】
2018/04/27 PHP
JavaScript中“+”的陷阱深刻理解
2012/12/04 Javascript
使用JavaScript获取电池状态的方法
2014/05/03 Javascript
js实现手机拍照上传功能
2017/01/17 Javascript
基于JQuery的购物车添加删除以及结算功能示例
2017/03/08 Javascript
jQuery中map函数的两种方式
2017/04/07 jQuery
解决vue打包之后静态资源图片失效的问题
2018/02/21 Javascript
vue数组对象排序的实现代码
2018/06/20 Javascript
基于vue-router 多级路由redirect 重定向的问题
2018/09/03 Javascript
vue中的过滤器实例代码详解
2019/06/06 Javascript
回顾Javascript React基础
2019/06/15 Javascript
js实现贪吃蛇游戏 canvas绘制地图
2020/09/09 Javascript
VUE 项目在IE11白屏报错 SCRIPT1002: 语法错误的解决
2020/09/27 Javascript
[01:07:22]2014 DOTA2华西杯精英邀请赛 5 24 DK VS VG加赛
2014/05/26 DOTA
python实现socket端口重定向示例
2014/02/10 Python
Python数据分析库pandas基本操作方法
2018/04/08 Python
python实现远程控制电脑
2019/05/23 Python
Python将string转换到float的实例方法
2019/07/29 Python
pycharm 设置项目的根目录教程
2020/02/12 Python
django列表筛选功能的实现代码
2020/03/27 Python
python 如何用urllib与服务端交互(发送和接收数据)
2021/03/04 Python
Wiggle中国:英国骑行、跑步、游泳 & 铁三运动装备专卖网店
2016/08/02 全球购物
澳大利亚吉他在线:Artist Guitars
2017/03/30 全球购物
Laura Mercier官网:彩妆大师罗拉玛斯亚的化妆品牌
2018/01/04 全球购物
Booking.com德国:预订最好的酒店和住宿
2020/02/16 全球购物
美国领先的机场停车聚合商:Airport Parking Reservations
2020/02/28 全球购物
网络工程专业毕业生推荐信
2013/10/28 职场文书
实习生的自我鉴定范文欣赏
2013/11/20 职场文书
留学推荐信怎么写
2014/01/25 职场文书
信息技术教研组工作总结
2015/08/13 职场文书
2016年第32个教师节红领巾广播稿
2015/12/18 职场文书
导游词之澳门妈祖庙
2019/12/19 职场文书
MySQL 自动填充 create_time 和 update_time
2022/05/20 MySQL