关于mysql的tinyint(1), tinyint(4), int(1), int(4),unsigned, zerofill等区别、做用介绍

unsigned和zerofill

  • unsigned是指的无符号,就是没有负数,只能用正数和0,此时unsigned修饰的字段的值能够达到的最大值是原来的最大值加1,即原来一个tinyint字段能表示的范围是:-128~127,而unsigned修饰的字段范围是:0~255。
  • zerofill是指的一个整型字段在容许的最大位数以前用0填充,好比一个字段设置为tinyint(4),须要用4个数字表示,而tinyint最大值为(假如是unsigned修饰)255,那么前面不足4位数都将用0填充,例如:0005, 0010, 0100, 0255。不管是int或是tinyint等整型数据,括号里面的数字只是表明这个数据最后的显示位数,不影响数据自己的存储大小。就是说int(1)和int(4)数据存储长度同样,int(1)仍是会比tinyint(8)存储空间占用大。总结一下数据大小:
  1. tinyint(1)与tinyint(4)在占用空间大小上没区别,都是一个字节
  2. int(1)与int(4)在占用空间大小上没区别,都是四个字节
  3. int(1)比tinyint(4)占用空间大,可是对于zerofill修饰的字段,最终显示出来的tinyint(4)都是以4个数字(前面补0)呈现出来,而int(1)是不用0补齐来呈现的
  4. tinyint一个字节   smallint  两个字节   MEDIUMINT三个字节  int 4个字节  BIGINT 8个字节,所以在选择字段类型的时候,在够用的状况下,能选择小的就尽可能选择小的,节省更多的空间
  5. int(6)与varchar(6)这两个6所表示的含义是不同的,int(6)只会影响zerofill字段最终的显示长度,而varchar(6)会要求字符串存储的长度不超过6字节

字段类型说明

各类字段类型在数据库存放的空间占用大小以下表数据库

数据类型 默认范围 unsigned范围
tinyint -2^7 ~ 2^7-1 0 ~ 2^8-1
smallint -2^15 ~ 2^15-1 0 ~ 2^16-1
MEDIUMINT -2^23 ~ 2^23-1 0 ~ 2^24-1
int  -2^31 ~ 2^31-1 0 ~ 2^32-1
bigint -2^63 ~ 2^63-1 0 ~ 2^64-1
相关文章
相关标签/搜索