关于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-10 ~ 2^8-1
smallint-2^15 ~ 2^15-10 ~ 2^16-1
MEDIUMINT-2^23 ~ 2^23-10 ~ 2^24-1
int -2^31 ~ 2^31-10 ~ 2^32-1
bigint-2^63 ~ 2^63-10 ~ 2^64-1

 

转载于:https://my.oschina.net/mui/blog/3017923

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值