学习计划 mysql 整数类型后面的数字,是什么意思?

Mysql中定义整数类型的数字,是指定这个字段的长度么?

比如 INT(10) 10代表10个字节么?还是只能存储10为长度的数字内容?

今天本来想学习下字符类型,一下子发现了这个,感觉好有趣。

--

那么,int(1)和tinyint(1) 他们表示什么意思?有什么区别呢?

关于int类型和tinyint类型,

我们知道,int类型占4个字节,tinyint占1个字节。int(1) 和 int(4) 从本身长度还是存储方式上都是一样的,区别就是显示的长度不同,但是要设置一个参数:如果列制定了zerofill 就会用0填充显示,int(4)指定后就会显示为0002。

所以,没有zerofill,(m)就是无用的。多少都没用!

也就是说,int(10) 和 int(1) 都可以插入 100 ,10000,100000,或者其他。

这里我用Navicat做一下演示,做了下实践

这里的name字段我指定了 tinyint zerofill (10)

输入1后结果

--

总结

tinyint(1)  和 tinyint(3) 没什么区别,占用字节都是一位,存储范围都是一样的

tinyint(3) zerofill ,当插入的数据少于3位的时候,左边自动补零,这才是限制显示长度

int(1) 和 tinyint(1) ,够用的情况下,优先选择tinyint(1),因为占字节少、节省空间。

tinyint一个字节   smallint  两个字节   MEDIUMINT三个字节  int 4个字节  BIGINT 8个字节。

但是,varchar(5)  这里的5 限制的是储存字符的个数,字符不分贵贱(不分 中文、英文、数字...)。

--

参考:

  https://www.cnblogs.com/stringzero/p/5707467.html

  https://blog.csdn.net/phpwish/article/details/7845921

 

原文地址:https://www.cnblogs.com/25-lH/p/8684395.html