您的当前位置:首页正文

MySQL TINYINT(1)和TINYINT(2)有什么区别?

2024-11-07 来源:个人技术集锦

身为程序员,拿事实说话拿代码说话最直观了,show the code

1.直接建表
CREATE TABLE `tinyinttest` (
  `id` int NOT NULL,
  `a` TINYINT(1) NOT NULL DEFAULT 0,
  `b` TINYINT(2) NOT NULL DEFAULT 0,
  `c` TINYINT(1) ZEROFILL NOT NULL DEFAULT 0,
  `d` TINYINT(2) ZEROFILL NOT NULL DEFAULT 0,
  PRIMARY KEY (`id`)
);

插入数据

INSERT INTO tinyinttest(a,b,c,d) VALUES (0,0,0,0);
INSERT INTO tinyinttest(a,b,c,d) VALUES (1,1,1,1);
INSERT INTO tinyinttest(a,b,c,d) VALUES (2,2,2,2);
INSERT INTO tinyinttest(a,b,c,d) VALUES (11,11,11,11);
INSERT INTO tinyinttest(a,b,c,d) VALUES (99,99,99,99);
INSERT INTO tinyinttest(a,b,c,d) VALUES (120,120,120,120);
2.查询数据

3.总结

TINYINT(1),TINYINT(2)中的1和2指得是数字的显示宽度。TINYINT(1)和TINYINT(2)在取值范围上没有区别,都是TINYINT的范围。

从查询结果可以看出,如果字段没有指定zerofill属性,那么a,b两列没有区别。
只有在指定了zerofill属性的时候,TINYINT(1)和TINYINT(2)才能看出差别,也就是c和d。

Top