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 覆盖索引的优点
May 19 MySQL
Mysql中调试存储过程最简单的方法
Jun 30 MySQL
MySQL系列之五 视图、存储函数、存储过程、触发器
Jul 02 MySQL
MySQL 服务和数据库管理
Nov 11 MySQL
MySQL中order by的使用详情
Nov 17 MySQL
MySQL 开窗函数
Feb 15 MySQL
MySQL之MyISAM存储引擎的非聚簇索引详解
Mar 03 MySQL
一次SQL如何查重及去重的实战记录
Mar 13 MySQL
深入理解mysql事务隔离级别和存储引擎
Apr 12 MySQL
MYSQL如何查看操作日志详解
May 30 MySQL
Mysql将字符串按照指定字符分割的正确方法
May 30 MySQL
MySQL深分页问题解决思路
Dec 24 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
php中var_export与var_dump的区别分析
2010/08/21 PHP
php 学习资料零碎东西
2010/12/04 PHP
php array_intersect比array_diff快(附详细的使用说明)
2011/07/03 PHP
Node.js:Windows7下搭建的Node.js服务(来玩玩服务器端的javascript吧,这可不是前端js插件)
2011/06/27 Javascript
JS正则验证邮箱的格式详细介绍
2013/11/19 Javascript
鼠标经过tr时,改变tr当前背景颜色
2014/01/13 Javascript
jQuery控制frames及frame页面JS的方法
2016/03/08 Javascript
基于Bootstrap实现tab标签切换效果
2020/04/15 Javascript
jQuery.ajax 跨域请求webapi设置headers的解决方案
2016/08/08 Javascript
Javascript使用function创建类的两种方法(推荐)
2016/11/19 Javascript
jQuery插件zTree实现清空选中第一个节点所有子节点的方法
2017/03/08 Javascript
JS实现将链接生成二维码并转为图片的方法
2018/03/17 Javascript
深入学习Vue nextTick的用法及原理
2019/10/08 Javascript
Python实现图像几何变换
2015/07/06 Python
Python模糊查询本地文件夹去除文件后缀的实例(7行代码)
2017/11/09 Python
Python实现的个人所得税计算器示例
2018/06/01 Python
python requests.post带head和body的实例
2019/01/02 Python
Python3.0中普通方法、类方法和静态方法的比较
2019/05/03 Python
用Anaconda安装本地python包的方法及路径问题(图文)
2019/07/16 Python
python Django中models进行模糊查询的示例
2019/07/18 Python
Django实现文件上传下载
2019/10/06 Python
在Windows上安装和配置 Jupyter Lab 作为桌面级应用程序教程
2020/04/22 Python
python实现磁盘日志清理的示例
2020/11/05 Python
美国最大的旗帜经销商:Carrot-Top
2018/02/26 全球购物
西班牙著名的珠宝首饰品牌:P D PAOLA
2018/09/15 全球购物
ORACLE十问
2015/04/20 面试题
搬家公司的创业计划书
2014/01/01 职场文书
工地安全检查制度
2014/02/04 职场文书
国际贸易毕业生求职信范文
2014/02/21 职场文书
会务接待方案
2014/02/27 职场文书
第二课堂活动总结
2014/05/07 职场文书
航空学院求职信
2014/06/11 职场文书
教师优秀党员事迹材料
2014/08/14 职场文书
铁路安全反思材料
2014/12/24 职场文书
Python 如何安装Selenium
2021/05/06 Python
Python开发五子棋小游戏
2022/05/02 Python