MySQL 中 int(11) 的 11 表示什么?

在 MySQL 中,int(11) 中的 11 并不表示整数的取值范围,而是用于显示宽度(Display Width)。它的含义和具体影响如下:


1. 显示宽度的定义

  • 显示宽度是指在使用 ZEROFILL 属性时,MySQL 返回查询结果时显示的最小数字宽度。
  • 如果存储的整数值不足指定的宽度,会用零填充到指定宽度。

例如:

CREATE TABLE example (

id INT(11) ZEROFILL

);

INSERT INTO example (id) VALUES (123);

SELECT id FROM example;

结果:

00000000123

解释:

  • INT(11) 配合 ZEROFILL 使用,表示输出宽度至少为 11 位,不足部分用 0 填充。

2. 显示宽度的影响

  • 显示宽度不会影响实际存储的数据大小,也不会限制可以存储的数值范围。
  • int(11) 的数值范围完全由 INT 类型决定,为 -2^31 到 2^31-1(约 -21亿 到 +21亿)。

例如:

  • 存储值为 1 或 12345678901,都会被正确保存,宽度只影响带 ZEROFILL 的查询显示。

3. 显示宽度是否必要

  • 在 MySQL 8.0 中,显示宽度已被废弃,对于整数类型(如 TINYINT、SMALLINT、INT、BIGINT),显示宽度不再生效。
  • 原因:显示宽度仅影响数据输出的显示方式,而现代应用通常由客户端程序处理格式化显示,MySQL 保留此功能意义不大。

4. 取值范围与显示宽度的关系

显示宽度与整数类型的取值范围无关,取值范围由数据类型的大小决定:

数据类型 字节大小 有符号取值范围 无符号取值范围
TINYINT 1 -128 ~ 127 0 ~ 255
SMALLINT 2 -32,768 ~ 32,767 0 ~ 65,535
INT 4 -2,147,483,648 ~ 2,147,483,647 0 ~ 4,294,967,295
BIGINT 8 -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 0 ~ 18,446,744,073,709,551,615

5. 示例

创建表:

CREATE TABLE demo (

id INT(11) ZEROFILL,

value INT(11)

);

插入数据:

INSERT INTO demo (id, value) VALUES (123, 4567);

查询数据:

SELECT id, value FROM demo;

结果:

id value 00000000123 4567
  • id 列因为使用了 ZEROFILL,不足 11 位用 0 补齐。
  • value 列没有 ZEROFILL,显示为实际存储的值。

6. 总结

  1. int(11) 中的 11 表示显示宽度,与数据存储大小或取值范围无关。
  2. 显示宽度仅在配合 ZEROFILL 使用时有效,用于输出固定长度的数值。
  3. 从 MySQL 8.0 开始,显示宽度功能已废弃,建议避免依赖此特性。

MySQL 中 int(11) 的 11 表示什么?的更多相关文章

  1. mysql中int(M) tinyint(M)中M的作用

    原先对mysql不太理解,但也没有报错.但理解的不够深入.这次补上. 原来以为int(11)是指11个字节,int(10)就是10个字节.我错了. http://zhidao.baidu.com/li ...

  2. mysql中int、bigint、smallint、tinyint 长度

    mysql中int.bigint.smallint.tinyint 长度 bigint -2^63 (-9223372036854775808) 到 2^63-1 (92233720368547758 ...

  3. [转]MySQL中int(11)最大长度是多少?

    原文地址:https://blog.csdn.net/allenjay11/article/details/76549503 今天在添加数据的时候,发现当数据类型为 int(11) 时,我当时让用户添 ...

  4. [转载]MySQL中int(11)最大长度是多少?

    原文地址:https://blog.csdn.net/allenjay11/article/details/76549503 今天在添加数据的时候,发现当数据类型为 int(11) 时,我当时让用户添 ...

  5. Mysql中int(1)的误解及说明

    在mysql中使用int相关的数据类型时, 如果不太了解其存储方式, 会产生一些误用的情况. 如: 只保存0-9之间的数字, 可能会直接用int(1). 习惯性的以为int(1)就相当于varchar ...

  6. Mysql中int和varchar类型

    int类型: int bigint smallint 和 tinyint 类型,如果创建新表时没有指定 int(M) 中的M时,默认分别是 : int           -------     in ...

  7. mysql中int转varchar

    这里要注意,cast(XX as varcahr(10))在mysql中不好使,要cast(XX as char(10))这样才好使

  8. Mysql 中 int(3) 和 int(11) 的区别

    [1]int(3) 和 int(11)的区别(思维惯性认知错误) 这里的3或11代表的是存储在数据库中的具体的长度,总以为int(3)只能存储3个长度的数字,int(11)只会存储11个长度的数字. ...

  9. mysql中int(3)与int(11)有什么区别吗?

    注意:这里的M代表的并不是存储在数据库中的具体的长度,以前总是会误以为int(3)只能存储3个长度的数字,int(11)就会存储11个长度的数字,这是大错特错的. 其实当我们在选择使用int的类型的时 ...

  10. MySQL中int(11)的意思

    参考文献:https://segmentfault.com/a/1190000012479448 int(11)中的11代表的是字符的显示宽度,在字段类型为int时,无论你显示宽度设置为多少,int类 ...

随机推荐

  1. [ARC 188A] ABC Symmetry

    solution by XiangXunYi 思路推导 step 1 首先题目中操作二同时删掉 A,B,C 的条件相当于同时将三者数量减一,操作一删掉两个相同字符等同于将某一字符的数量减二,那么我们可 ...

  2. react报错Can't resolve 'react' in 'E:\reactweb\preact\my-app\node_modules\react-dom\cjs'

    执行如下: npm install -g react npm install react --save 类似这种依赖项(react,react-dom 等)报错,哪个报错执行哪个即可 执行上述两句就 ...

  3. 基于Java语言的开源能管平台才是最适合国内的能源管理平台

    在"双碳"战略背景下,能源管理已成为政府.企业实现可持续发展的必经之路.面对市场上各类能源管理平台,为何基于Java语言的开源解决方案才是最佳选择?本文将为您揭晓答案,并向您推荐我 ...

  4. Q:Linux符号连接的层数过多

    创建符号链接的时候源文件一定要使用绝对路径,尤其是链接不在同一目录时候,用相对路径会出现这种bug,具体是红色闪烁状态.:正常应该是青绿色  例如: 安装zabbix_agent遇到的问题,在root ...

  5. Luogu P10997 Partition 题解 [ 蓝 ] [ 分割线 dp ]

    Partition:一道 dp 神题,用到了以轮廓线的轨迹来做 dp 的技巧,和敲砖块这题的状态设计有点相似. 观察 首先观察样例,发现整张图可以看作是被两条线分隔开的.同时每个颜色的四个方向上又存在 ...

  6. LINUX手动安装万里开源单实例

    下载安装包 https://gitee.com/GreatSQL/GreatSQL/releases/ 关闭 selinux 和防火墙 #关闭selinux $ setenforce=0 $ sed ...

  7. windows10专业版代码永久激活

    1."Win+R"打开运行对话框,输入命令slmgr.vbs -xpr 可以查看当前系统的激活信息 2. 在电脑图标右键,打开属性,查看自己win10系统版本 3. 在开始菜单右键 ...

  8. Linux - 安装centos7.x之后发现ping不了www.baidu.com

    1.首先检查网络配置 /etc/sysconfig/network-scripts 下的网卡配置文件是否有误 检查方向:IP.网关.子网掩码.DNS.ONBOOT参数 2.检查防火墙是否关闭 # 查看 ...

  9. Ansible - [08] 模块应用

    firewalld 模块 使用firewalld模块可以配置防火墙策略 [root@control ~]# cat ~/ansible/firewall.yml --- - hosts: agent ...

  10. Sqoop增量导入注意事项 incremental lastmodified与target-dir连用报错 Imported Failed: Wrong FS

    这里引用一篇博客  写的很好 https://blog.csdn.net/C_time/article/details/101109071