• 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 );
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
    • 查看表结构

      DESC test_int1;
      
      • 1

      在这里插入图片描述

    • 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
      );
      
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
    • 查看表结构

      DESC test_int2;
      
      • 1

      在这里插入图片描述

    • 插入数据

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

      在这里插入图片描述

    结果可以看出: 配合使用了 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;
    
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

  • 相关阅读:
    卷积运算与互相关运算
    LINUX网络设置
    有2023最新的批量混剪软件的排名榜单吗?
    【SLAM】3三维刚体运动
    数据结构:简单记录顺序表、链表、栈、队列
    AI视频教程下载:给初学者的ChatGPT提示词技巧
    Qt退出界面
    总结:大数据服务
    解读下SWD协议以及其应用
    Git: 工作区、暂存区、本地仓库、远程仓库
  • 原文地址:https://blog.csdn.net/weixin_52797128/article/details/126666230