MySQL 中的 int(11) 含义

首先看下图:

MySQL 中的 int(11) 含义

int(11)  11 代表的并不是长度,而是字符的显示宽度,在字段类型为 int 时,无论你显示宽度设置为多少,int 类型能存储的最大值和最小值永远都是固定的。

示例:

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;

MySQL 中的 int(11) 含义

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

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

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

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

字节(Byte)和位(Bit)
1、字节(Byte)和位(Bit)的关系

(1)Bit——Binary Digit(二进制数位)的缩写,叫作“位”或“比特”,是计算机运算的基础。Bit 代表二进制数位,取值范围为:0 或 1。
(2)Byte——叫作“字节”,是计算机文件大小的基本计算单位。
(3)两者关系:1 Byte = 8 Bit。
MySQL 中的 int(11) 含义

 

 

上一篇:rust异步库-tokio的一些资源限制


下一篇:树状数组