为了账号安全,请及时绑定邮箱和手机立即绑定

MySQL中int(11)列的大小(以字节为单位)是多少?

/ 猿问

MySQL中int(11)列的大小(以字节为单位)是多少?

慕桂英3389331 2019-10-12 17:07:36

MySQL中int(11)列的大小(以字节为单位)是多少?

的列的大小是多少?int(11)是以字节为单位的MySQL吗?

以及可以存储在此列中的最大值?



查看完整描述

3 回答

?
PIPIONE

INT将始终为4个字节,无论指定的长度。

  • TINYINT

    =1字节(8位)
  • SMALLINT

    =2字节(16位)
  • MEDIUMINT

    =3字节(24位)
  • INT

    =4字节(32位)
  • BIGINT

    =8字节(64位)。

长度仅指定使用MySQL命令行客户端选择数据时要显示多少字符。

..最大值为2147483647(签名)或4294967295(未签名)。




查看完整回答
反对 回复 2019-10-13
?
慕容4345310

INT(命名者)会产生不同的效果仅在展示方面,即显示在‘命名者‘数字,而不限于11。你用ZEROFILL,它会将零放在前面,直到它与您的长度匹配为止。

请注意,存储在数据库中的值不受影响,任何计算仍将保持原样。

备注:

  • 如果值的数字小于‘命名者', ZEROFILL将占优势零。

    INT(5)ZEROFILL以32的存储值显示00032
    INT(5)以32的存储值显示32
    INT以32的存储值显示32

  • 如果该值的数字大于“命名者‘,将显示存储的值。

    INT(3)ZEROFILL存储值为250000的250000
    INT(3)存储值为250000的250000
    INT存储值为250000的250000

同样的情况也适用于BIGINT、MEDIUMINT、SMALLINT和TINYINT。



查看完整回答
反对 回复 2019-10-13
?
回首忆惘然

正如其他人所说,列可以存储的最小/最大值以及它以字节表示的存储量仅由类型定义,而不是由长度定义。

很多答案都是说(11)部件只影响显示宽度,这不是完全正确的,但主要是。

对…的定义int(2)带着没有指定零威尔:

  • 仍然接受以下值

    100

  • 仍然

    显示

    价值

    100

    当输出(不是)时

    0

    00)

  • 这个

    显示宽度

    将是从SELECT查询输出的最大值的宽度。

唯一(2)会做的是如果还指定了零:

  • 价值

    1

    将显示

    01.

  • 当显示值时,列将始终具有

    列可能取的最大值的宽度。

    它是一个整数的10位数,而不是显示列在特定的SELECT查询中需要显示的最大值所需的最小宽度,这个查询可能要小得多。
  • 列仍然可以接受,并显示超过长度的值,但这些值不会以0作为前缀。

看到所有细微差别的最好方法是跑:

CREATE TABLE `mytable` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `int1` int(10) NOT NULL,
    `int2` int(3) NOT NULL,
    `zerofill1` int(10) ZEROFILL NOT NULL,
    `zerofill2` int(3) ZEROFILL NOT NULL,
    PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;INSERT INTO `mytable` (`int1`, `int2`, `zerofill1`, `zerofill2`)
     VALUES(10000, 10000, 10000, 10000),(100, 100, 100, 100);select * from mytable;

它将产生:

+----+-------+-------+------------+-----------+

| id | int1  | int2  | zerofill1  | zerofill2 |

+----+-------+-------+------------+-----------+

|  1 | 10000 | 10000 | 0000010000 |     10000 |

|  2 |   100 |   100 | 0000000100 |       100 |

+----+-------+-------+------------+-----------+

注意int1列的显示宽度比zerofill2即使长度更大。

这个答案在LinuxMySQL5.7.12上进行了测试,其他实现可能有变化,也可能没有变化。




查看完整回答
反对 回复 2019-10-13

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信