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

发布时间:2024年01月19日

身为程序员,拿事实说话拿代码说话最直观了,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的范围。
MySQL官方文档地址
在这里插入图片描述

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

文章来源:https://blog.csdn.net/sdujava2011/article/details/135696909
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。