对于 int 类型的一些基础知识其实上图已经说的很明白了,在这里想讨论下常用的 int(11) 代表什么意思,很长时间以来我都以为这代表着限制 int 的长度为 11 位,直到有天看到篇文章才明白,11 代表的并不是长度,而是字符的显示宽度,在字段类型为 int 时,无论你显示宽度设置为多少,int 类型能存储的最大值和最小值永远都是固定的,这里贴一些原文片段。

  The number in the parenthesis does not determines the max and min values that can be stored in the integer field. The max and min values that can be stored are always fixed.
  The display width of the column does not affects the maximum value that can be stored in that column. A column with INT(5) or INT(11) can store the same maximum values. Also, if you have a column INT(20) that does not means that you will be able to store 20 digit values (BIGINT values). The column still will store only till the max values of INT.

  那么照文中所说,所以无论怎么设置 int 类型的显示宽度,int 所能存储的最大值和最小值是固定的,那么这个显示宽度到底有什么用呢?
  当 int 字段类型设置为无符号且填充零(UNSIGNED ZEROFILL)时,当数值位数未达到设置的显示宽度时,会在数值前面补充零直到满足设定的显示宽度,为什么会有无符号的限制呢,是因为 ZEROFILL 属性会隐式地将数值转为无符号型,因此不能存储负的数值。

  具体用以下代码解释。

首先创建一张表:

CREATE TABLE int_demo (id INT(11) NOT NULL AUTO_INCREMENT,a INT(11) NOT NULL,b INT(11) UNSIGNED ZEROFILL NOT NULL,c INT(5) DEFAULT NULL,d INT(5) UNSIGNED ZEROFILL NOT NULL,e INT(15) DEFAULT NULL,PRIMARY KEY (`id`)
)

插入两条数据

INSERT INTO int_demo (a, b, c, d, e) VALUES (1, 1, 1, 1, 1);
INSERT INTO int_demo (a, b, c, d, e) VALUES (1234567890, 1234567890, 1234567890, 1234567890, 1234567890);

select * from int_demo;

注释:如果用 navicate 软件查询出来并不会显示左边的 0,但把数据导出时可看到真实的数据,猜测是软件对数据格式进行了处理。

回到顶部

三、结论

从上个例子我们可以得出以下几个结论:

  1、如果一个字段设置了无符号和填充零属性,那么无论这个字段存储什么数值,数值的长度都会与设置的显示宽度一致,如上述例子中的字段 b,插入数值 1 显示为00000000001,左边补了 10 个零直至长度达到 11 位;

  2、设置字段的显示宽度并不限制字段存储值的范围,比如字段 d 设置为 int(5),但是仍然可以存储 1234567890 这个 10 位数字;

  3、设置的字符宽度只对数值长度不满足宽度时有效,如 d 字段 int(5),插入 1 时,长度不足 5,因此在左边补充 4 个零直到 5 位,但是插入 1234567890 时超过了 5 位,这时的显示宽度就起不了作用了。

MySql 中的 int(11) 到底代表什么意思?相关推荐

  1. int mysql_「MYSQL」MYSQL中的int(11)到底代表什么意思?

    一.前言 在工作中经常要与mysql打交道,但是对mysql的各个字段类型一直都是一知半解,因此写本文总结记录一番. 二.简介 对于int类型的一些基础知识其实上图已经说的很明白了,在这里想讨论下常用 ...

  2. 用通俗易懂的大白话彻底搞明白mysql的数据类型以及mysql中的int(11),这个11到底是啥?

    今天抽时间来讲一下mysql里的知识点,之前有不少人问过我,mysql中的int(11),这个11到底是啥意思?是11位的意思吗?你是否也想过这个问题,是否也有这个疑问? ok,今天就展开来讲一下,用 ...

  3. mysql int()_简单谈谈MySQL中的int(m)

    我们在设计表的时候,如果碰到需要设置int(整型)的时候,通常会按照惯例(大家都这样写)设置成int(11).那么这里为什么是11呢?代表的又是什么呢? 以前我一直以为这里是在限制int显示的宽度,后 ...

  4. mysql的smallint,在MySQL中对int使用smallint数据类型是否确实节省了内存?

    Does using a smallint datatype in a mysql table over a regular int actually improve memory usage? Wo ...

  5. int(11)到底占几个字节,亲测保证可靠

    前言 你是不是一直以为Int(11)就是占11个字节,int(3)就是占3个字节,如果你是这样想的那就大错特错了,这里小编就带着大家一起重新巩固学习吧,打破之前的错误"认为". 开 ...

  6. 关于C中的Int类型到底是几个字节。

    C语言标准是这样规定的:int最少16位(2字节),long不能比int短,short不能比int长,具体位长由编译器开发商根据各种情况自己决定.在32位x86处理器上,short.int.long普 ...

  7. mysql int 11 最大多少_types - mysql中int(11)列的大小(以字节为单位)是多少?...

    types - mysql中int(11)列的大小(以字节为单位)是多少? 以字节为单位的mysql中int(11)列的大小是多少? 并且可以存储在此列中的最大值? Gaurav asked 2019 ...

  8. Mysql中int、bigint、smallint 和 tinyint的区别详细介绍

    下表是各类型信息: 1 bytes = 8 bit ,一个字节最多可以代表的数据长度是2的8次方 11111111 在计算机中也就是-128到127 1. BIT[M] 位字段类型,M表示每个值的位数 ...

  9. mysql中int长度及有符号无符号

    mysql的int储存的值的长度与设置的int长度无关, 如int(3)表示只能储存3位数字int(11)能存储11位数字.其实这根本就是大错特错. mysql手册是这样写的:MySQL还支持选择在该 ...

最新文章

  1. 博客园外挂之一Web搜索引擎命中统计
  2. 基于FPGA的波速形成系统的实现
  3. LeetCode 263. 丑数 264. 丑数 II(DP)
  4. k8s 查看pod流量_Kubernetes K8S之Pod生命周期与探针检测
  5. 基础知识(十二)Opengl回顾记录
  6. 【kafka】kafka jmx topic 监控 topic 名称不存在 或者 topic监控是如何出现的呢 或者 topic监控机制
  7. 【java】高并发之限流 RateLimiter使用
  8. DPDK-VPP 学习笔记-03 Load Balancer plugin
  9. 邮件传输协议 SMTP 、POP3 、IMAP 和 Exchange 比较及联系?
  10. python xlwt 写入Excel
  11. Pathon简介和优势
  12. 2017-2018 中国人工智能产业路线图
  13. SQL 2008函数大全
  14. 基于大数据分析山东2020年高考难度和选科要求(一)
  15. Redis 持久化,写入磁盘的方式
  16. VBA 连接Oracle 数据库
  17. java 判断 子集_java – 获取集合子集的策略
  18. 详解Android布局中gravity与layout_gravity属性
  19. 玩抖音是浪费时间吗?
  20. 如何构建业务数据分析体系

热门文章

  1. linux tab的含义,理解Linux中crontab定时器里的 21 含义 - 金牛座, 爬山虎, PHPCreeper, Workerman, Swoole, PHP爬虫引擎, PHP爬...
  2. 学python必须得英语精通吗_“学习python必须精通的几个模块“
  3. 怎么判断tcp重组完成_网络工程师(8):TCP为什么可靠
  4. python 安装容易吗,Python安装的步骤操作其实是件很容易的事
  5. c#调用c++ dll const char* String类型转换问题。传值,与接收返回值问题
  6. LINQ to SQL VS LINQ to Entities
  7. JAR包中读取资源文件
  8. asp.net core mvc视频A:笔记2-4.ActionResult(动作结果,即返回值)
  9. bzoj 1651: [Usaco2006 Feb]Stall Reservations 专用牛棚【贪心+堆||差分】
  10. [转载]Memcached缓存服务的简单安装