当前位置: 首页 > news >正文

MySQL中的int(11)类型后的括号是什么意思?ZEROFILL属性

MySQL中的int(11)类型后的括号是什么意思?

首先回答一下括号中的参数表示 显示宽度与int的能插入数据的范围没有任何关系 。 例如:int(5):当数据宽度小于5位的时候在数字前面需要用 字符填满宽度该项功能需要配合“ ZEROFILL ”使用,表示用“0”在左边填满至5位,否则指定显示宽度没有意义。

该属性MySQL8版本已经不推荐使用。

显示宽度属性

在MySQL5版本中:

  • 创建test_int1表

    CREATE TABLE test_int1 ( 
    X TINYINT, 
    Y SMALLINT, 
    z MEDIUMINT, 
    m INT, 
    n BIGINT );
    
  • 查看表结构

    DESC test_int1;
    

    在这里插入图片描述

  • TINYINT有符号数和无符号数的取值范围分别为-128 ~ 127和0 ~ 255,由于负号占了一个数字位,因此 TINYINT默认的显示宽度为4。同理,其他整数类型的 默认显示宽度与其有符号数的最小值的宽度相同

  • MySQL整型的取值范围
    在这里插入图片描述

结论:

单纯使用显示宽度参数,是没有任何效果的。想要使用o字符填满宽度,需配合 **ZEROFILL**使用

ZEROFILL属性

ZEROFILL : 0填充,(如果某列是ZEROFILL,那么MySQL会自动为当前列添加UNSIGNED属性),如果指 定了ZEROFILL只是表示不够M位时,用0在左边填充,如果超过M位,只要不超过数据存储范围即可。
原来,在 int(M) 中,M 的值跟 int(M) 所占多少存储空间并无任何关系。 int(3)、int(4)、int(8) 在磁盘上都 是占用 4 bytes 的存储空间。也就是说,int(M),必须和UNSIGNED ZEROFILL一起使用才有意义。如果整 数值超过M位,就按照实际位数存储。只是无须再用字符 0 进行填充。

在使用ZEROFILL时,会自动添加UNSIGNED属性

举例:

  • 创建test_int2表:

    CREATE TABLE test_int2(
    	f1 INT,
    	f2 INT(5),
    	f3 INT(5) ZEROFILL
    );
    
    
  • 查看表结构

    DESC test_int2;
    

    在这里插入图片描述

  • 插入数据

    INSERT INTO test_int2 VALUES(123,123,123),
    							(1234,1234,1234),
    							(12345,12345,12345),
    							(123456,123456,123456);
    
  • 查看数据

    在这里插入图片描述

结果可以看出: 配合使用了 zerofill属性的字段 f3,在添加数据不足5位时,会用0来填充 。且对添加数据的大小并没有什么限制。不使用zerofill属性的f2,跟不指定宽度的f1效果相同。

总结

int(M)中的显示宽度属性M是为了在,插入数据不足M位时,使用字符来在左边填充至M位。需配合zerofill属性使用

补充:UNSIGNED属性

UNSIGNED:无符号类型(非负) ,所有的整数类型都有一个可选的属性UNSIGNED(无符号属性),无 符号整数类型的最小取值为0。所以,如果需要在MySQL数据库中保存非负整数值时,可以将整数类型设 置为无符号类型。 int类型默认显示宽度为int(11),无符号int类型默认显示宽度为int(10)。

CREATE TABLE test_int3(
f1 INT UNSIGNED
);
DESC test_int3;

在这里插入图片描述

相关文章:

  • 树莓派4B(64位)环境搭建
  • AWS CodeCommit中分支保护
  • 免费搭建查题公众号提供题库接口
  • 13---OpenCV:图像进阶操作之①图像直方图②图像金字塔
  • 石头科技: 决胜百亿扫地机器人“价值高地”
  • 趁着中秋节来临之际,学学如何做好团队管理
  • Spring Cloud项目(八)——使用gateway作为服务网关
  • 为什么要注册商标?有什么好处?
  • C/C++后端开发学习路线总结(附带实习学习经历分享)
  • 广西大学口袋开发板之抢答器
  • 【Python零基础入门篇 · 2】:掌握各种运算符和变量、input()输入输出、映射函数map()结合input()和split()函数实现多值输入
  • 单向环形链表构建(思路分析) [Java][数据结构]
  • 数智随行 | 探想未来工厂数字化,强化智能设备管理
  • 解决所有二叉树路径问题
  • Apache Kyuubi 在小米大数据平台的应用实践
  • SegmentFault for Android 3.0 发布
  • 2017年终总结、随想
  • CODING 缺陷管理功能正式开始公测
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • ES6 学习笔记(一)let,const和解构赋值
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • isset在php5.6-和php7.0+的一些差异
  • js正则,这点儿就够用了
  • Linux编程学习笔记 | Linux IO学习[1] - 文件IO
  • Promise面试题2实现异步串行执行
  • vuex 学习笔记 01
  • Vue小说阅读器(仿追书神器)
  • win10下安装mysql5.7
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • ------- 计算机网络基础
  • 将 Measurements 和 Units 应用到物理学
  • 你真的知道 == 和 equals 的区别吗?
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 时间复杂度与空间复杂度分析
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • 机器人开始自主学习,是人类福祉,还是定时炸弹? ...
  • ​​​​​​​​​​​​​​汽车网络信息安全分析方法论
  • ​力扣解法汇总1802. 有界数组中指定下标处的最大值
  • !! 2.对十份论文和报告中的关于OpenCV和Android NDK开发的总结
  • (done) 两个矩阵 “相似” 是什么意思?
  • (二)Linux——Linux常用指令
  • (二)正点原子I.MX6ULL u-boot移植
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • .form文件_一篇文章学会文件上传
  • .net core开源商城系统源码,支持可视化布局小程序
  • .NET Core中Emit的使用
  • .NET Standard 支持的 .NET Framework 和 .NET Core
  • .net 程序 换成 java,NET程序员如何转行为J2EE之java基础上(9)
  • .stream().map与.stream().flatMap的使用
  • @基于大模型的旅游路线推荐方案
  • [ 英语 ] 马斯克抱水槽“入主”推特总部中那句 Let that sink in 到底是什么梗?
  • [Android] Upload package to device fails #2720
  • [Angular] 笔记 16:模板驱动表单 - 选择框与选项