Heim  >  Fragen und Antworten  >  Hauptteil

MySQL int 类型不是最多只能到 4,294,967,295 么,怎么会有 int(11)?

MySQL int 类型不是最多只能到 4,294,967,295 么,怎么新建表的时候,默认不写 int 后面的数字(即不这样写int(5)),建好表之后会是 int(11)

伊谢尔伦伊谢尔伦2743 Tage vor727

Antworte allen(6)Ich werde antworten

  • PHPz

    PHPz2017-04-17 11:19:05

    后面的数字只影响默认显示的位数

    http://www.ccvita.com/175.html

    Antwort
    0
  • 怪我咯

    怪我咯2017-04-17 11:19:05

    举个例子最明白,类似于位数不足以0补全。
    e.g.

    mysql> create table joke (a int(11));
    Query OK, 0 rows affected (0.01 sec)

    mysql> insert into joke values(100);
    Query OK, 1 row affected (0.00 sec)

    mysql> select * from joke;
    +------+
    | a |
    +------+
    | 100 |
    +------+
    1 row in set (0.00 sec)

    mysql> alter table joke change a a int(11) zerofill;
    Query OK, 1 row affected (0.00 sec)
    Records: 1 Duplicates: 0 Warnings: 0

    mysql> select * from joke;
    +-------------+
    | a |
    +-------------+
    | 00000000100 |
    +-------------+
    1 row in set (0.00 sec)

    Antwort
    0
  • 阿神

    阿神2017-04-17 11:19:05

    int(11)这里不是代表的数字最大上限位数的意思,而是数字显示位数,比如 123,在int(11)中会显示成 00000000123

    Antwort
    0
  • 大家讲道理

    大家讲道理2017-04-17 11:19:05

    建表的时候可以不指定int的长度,这个()里面显示的是对外显示的宽度,Int 是定长数据类型。所以存储的大小是确定的。不会因为()而变化。

    Antwort
    0
  • 黄舟

    黄舟2017-04-17 11:19:05

    如果是有符号整数就会多出负号占一位

    Antwort
    0
  • 天蓬老师

    天蓬老师2017-04-17 11:19:05

    好不好了

    Antwort
    0
  • StornierenAntwort