关于MySQL中数据类型显示宽度n

我们在MYSQL中创建表的时候,可能常常使用int(10),然后这个10代表具体意义究竟是什么呢?它和varchar(10)中10又有什么区别呢?

对于整形数据,mysql支持在类型名称后面的小括号内指定显示宽度。显示宽度一般配合zerofill使用。zerofill顾名思义就是使用0来填充。当数字位数不够显示的宽度的时候,使用0填充。

如果不配合使用zerofill,则mysql中设置显示宽度没有效果

创建一个表

CREATE TABLE `t1` (
  `id1` int(3) unsigned zerofill NOT NULL DEFAULT '000',
  `id2` int(3) unsigned zerofill NOT NULL DEFAULT '000'
) ENGINE=InnoDB DEFAULT CHARSET=utf8

插入数据测试

INSERT INTO `t1`(`id1`,`id2`) VALUES(123456,12);
关于MySQL中数据类型显示宽度n_第1张图片


备注:如果设置宽度现在后,插入大于宽度限制的值,不会发送截断或者是插入报错。当插入的值宽度大于设置的宽带时候,宽度格式实际上已经没有任何意义了

你可能感兴趣的:(关于MySQL中数据类型显示宽度n)