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 sql_mode的使用详解
May 08 MySQL
MySQL 分页查询的优化技巧
May 12 MySQL
详解MySQL数据库千万级数据查询和存储
May 18 MySQL
你知道哪几种MYSQL的连接查询
Jun 03 MySQL
MySql 8.0及对应驱动包匹配的注意点说明
Jun 23 MySQL
MySQL的Query Cache图文详解
Jul 01 MySQL
一篇文章带你深入了解Mysql触发器
Aug 02 MySQL
MySQL的存储函数与存储过程的区别解析
Apr 08 MySQL
Mysql 一主多从的部署
May 20 MySQL
手把手带你彻底卸载MySQL数据库
Jun 14 MySQL
MySQL新手入门进阶语句汇总
Sep 23 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
搭建基于Docker的PHP开发环境的详细教程
2015/07/01 PHP
基于jquery的tab切换 js原理
2010/04/01 Javascript
IE本地存储userdata的一个bug说明
2010/07/01 Javascript
jQuery中detach()方法用法实例
2014/12/25 Javascript
JQuery选择器绑定事件及修改内容的方法
2015/01/23 Javascript
使用OpenLayers3 添加地图鼠标右键菜单
2015/12/29 Javascript
AngularJS单选框及多选框实现双向动态绑定
2016/01/13 Javascript
Javascript实现鼠标框选操作  不是点击选取
2016/04/14 Javascript
jQuery如何解决IE输入框不能输入的问题
2016/10/08 Javascript
bootstrap按钮插件(Button)使用方法解析
2017/01/13 Javascript
js 递归和定时器的实例解析
2017/02/03 Javascript
react.js使用webpack搭配环境的入门教程
2017/08/14 Javascript
解决Vue 通过下表修改数组,页面不渲染的问题
2018/03/08 Javascript
vue组件中的数据传递方法
2018/05/14 Javascript
解决使用bootstrap的dropdown部件时报错:error:Bootstrap dropdown require Popper.js问题
2018/08/30 Javascript
swiper在angularjs中使用循环轮播失效的解决方法
2018/09/27 Javascript
AngularJs返回前一页面时刷新一次前面页面的方法
2018/10/09 Javascript
微信小程序使用 vant Dialog组件的正确方式
2020/02/21 Javascript
CentOS安装pillow报错的解决方法
2016/01/27 Python
Python实现一个简单的验证码程序
2017/11/03 Python
Python如何抓取天猫商品详细信息及交易记录
2018/02/23 Python
python 实现语音聊天机器人的示例代码
2018/12/02 Python
python实现二维数组的对角线遍历
2019/03/02 Python
详解Python中的format格式化函数的使用方法
2019/11/20 Python
使用pandas实现筛选出指定列值所对应的行
2020/12/13 Python
海淘零差价,宝贝全球购: 宝贝格子
2016/08/24 全球购物
英国、欧洲和全球租车服务:Avis英国
2016/08/29 全球购物
斯德哥尔摩通票:Stockholm Pass
2018/01/09 全球购物
新学期红领巾广播稿
2014/01/14 职场文书
《母鸡》教学反思
2014/02/25 职场文书
竞争与合作演讲稿
2014/05/12 职场文书
广告宣传策划方案
2014/05/21 职场文书
学生检讨书范文
2014/10/30 职场文书
银行中层干部培训心得体会
2016/01/11 职场文书
合同范本之电脑出租
2019/08/13 职场文书
利用正则表达式匹配浮点型数据
2022/05/30 Java/Android