关于mysql的tinyint(1), tinyint(4), int(1), int(4),unsigned, zerofill等区别、作用介绍
时间: 2019-03-05来源:OSCHINA
前景提要
「深度学习福利」大神带你进阶工程师,立即查看>>>
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)存储空间占用大。总结一下数据大小: tinyint(1)与tinyint(4)在占用空间大小上没区别,都是一个字节 int(1)与int(4)在占用空间大小上没区别,都是四个字节 int(1)比tinyint(4)占用空间大,但是对于zerofill修饰的字段,最终显示出来的tinyint(4)都是以4个数字(前面补0)呈现出来,而int(1)是不用0补齐来呈现的 tinyint一个字节 smallint 两个字节 MEDIUMINT三个字节 int 4个字节 BIGINT 8个字节,因此在选择字段类型的时候,在够用的情况下,能选择小的就尽量选择小的,节省更多的空间 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 bigint
-2^31 ~ 2^31-1 -2^63 ~ 2^63-1
0 ~ 2^32-1 0 ~ 2^64-1

科技资讯:

科技学院:

科技百科:

科技书籍:

网站大全:

软件大全:

热门排行