int(4)、int(8)、int(11) 分别占用几个字节 ? | 您所在的位置:网站首页 › 贴吧id是几位数字 › int(4)、int(8)、int(11) 分别占用几个字节 ? |
文章目录
MySQL 数据类型介绍数值类型日期/时间类型字符串类型
int(4)、int(8)、int(11) 分别占用几个字节 ?MySQL 中的整数型数据类型:不同整数类型的取值范围:回归正题,int(4)、int(8)、int(11) 究竟占用几个字节呢 ?再举个例子说明每种数据类型的默认显示宽度总结一下
探讨这个问题之前,我们先来回忆一下 MySQL 支持存储的数据类型有哪些 ?
MySQL 支持多种数据类型,主要有数值类型、日期/时间类型和字符串类型。 数值类型 整数类型:tinyint、smallint、mediumint、int、bigint;浮点小数类型:float 、double;定点小数类型:decimal 日期/时间类型year、time、date、datetime、timestamp 字符串类型char、varchar、binary、varbinary、blob、text、enum、set 等 由于本篇文章重点讨论 int(integer)占用字节的问题,其所属整数型数据类型,所以下面从整型数据类型讲起 int(4)、int(8)、int(11) 分别占用几个字节 ? MySQL 中的整数型数据类型: 类型名称说明存储需求tinyint很小的整数1 个字节smallint小的整数2 个字节mediumint中等大小的整数3 个字节int(integer)普通大小的整数4 个字节bigint大整数8 个字节从上表中可知,不同类型整数存储所需的字节数是不同的,占用字节数最小的是 tinyint 类型,占用字节最大的是 bigint 类型,相应的占用字节越多的类型所能表示的数值范围越大。根据占用字节数可以求出每一种数据类型的取值范围,例如 tinyint 需要 1 个字节(8 bits)来存储,那么 tinyint 无符号数的最大值为 28,即 255。tinyint 有符号数的最大值是 2^7 - 1,即 127。其他类型的整数的取值范围计算方法相同,如下表所示: 不同整数类型的取值范围: 数据类型有符号无符号tinyint-128~1270~255smallint-32768~327670~65535mediumint-8388608~83886070~16777215int(integer)-2147483648~21474836470~4294967295bigint-9223372036854775808~92233720368547758070~18446744073709551615 回归正题,int(4)、int(8)、int(11) 究竟占用几个字节呢 ?答案已经在上面写明啦已经呼之欲出啦,他们都是 4 个字节。 我们以 int(11) 为例来说,11 代表该数据类型指定的显示宽度,指定能够显示的数值中数字的个数。 再举个例子,假设声明一个 INT 类型的字段: id int(4);该声明指明,在 id 字段中的数据一般只显示 4 位数字的宽度。 注意:显示宽度和数据类型的取值范围是无关的。显示宽度只是指明 MySQL 最大可能显示的数字个数,数值的位数小于指定的宽度时会由空格填充;如果插入了大于显示宽度的值,只要该值不超过该类型整数的取值范围,数值依然可以插入,而且能够显示出来。例如:假如向 id 字段插入一个数值 19999,当使用 select 查询该列值的时候,MySQL 显示的将是完整的带有 5 位数字的 19999,而不是 4 位数字的值。 再举个例子说明每种数据类型的默认显示宽度创建表: create table test (x tinyint, y smallint, z mediumint, m int, n bigint);查看表结构: 不同的整数类型有不同的取值范围,并且需要不同的存储空间,因此,应该根据实际需要选择最合适的类型,这样有利于提高查询的效率和节省存储空间。 总结一下显示宽度只用于显示,并不能限制取值范围和占用空间,如:int(3) 会占用 4 个字节的存储空间,并且允许的最大值也不会是 999,而是 int 整型所允许的最大值。 |
CopyRight 2018-2019 实验室设备网 版权所有 |