详解mysql字段类型:int(4) int(10)区别、varchar char区别

一、mysql字段类型大致可以分为:数值日期/时间字符串
数值类型:tinyint,smallint,mediumint,int/integer,bigint,float,double,decimal

 

日期/时间类型:datetime,date,timestamp,time,year
每个时间类型有一个有效值范围和一个零值,当指定不合法的mysql不能表示的值时使用零值
TIMESTAMP类型有专有的自动更新特性。

 

字符串类型:char,varchar,binary,varbinary,blob,text,enum,set

 

各类型详解:
1.数值型类型详解及区别

例如:tinyint(1)和tinyint(4)
tinyint字段类型的值范围为-127<值<128,如果为unsigned,值的范围为:0<值<256


包括int(6)
括号中的数字显示的是值的宽度,也就是长度。最大值也就是值的范围的最大值的长度+1。例如128长度为3,所以tinyint()括号中的值最大为4
tinyint(3)如果设置了zerofill ,那么值1则显示为001,如果没有设置zerofill则显示为1其他同理。如果设置了zerofill则自动转为无符号unsigned

浮点型:float(单精度)、double(双精度) 定点型decimal
都可以加(M,D)来表示,M表示该值的总长度,D表示小数点后面的长度
单精度浮点数在占内存4个字节,双精度浮点型占内存8个字节
单精度浮点数有效位数为8位,双精度浮点数有效位数16位
单精度浮点数和双精度浮点数标识数的范围不同
cpu单精度浮点数的速度处理比双精度浮点型快
float(10,2) double(10,2) decimal(10,2) 表示10位长度,小数点后有2位

 

2.char与varchar类型详解及区别

varchar存储可变长字符串,存储时小于255字节时需要加1个额外的字节(大于255需要2个额外字节)存储长度,最大长度为65532字节
char存储定长字符串,存储时会使用空格补全右侧,读取是会截断末尾空格,最大长度为255字符
例如:char(255)长度固定,www.jb51.net 存储需要空间12个字符,后面还会用空格补全,总共占用255
varchar(255)可变长,www.jb51.net 存储需要空间12+1共13个字符,1个用来存储位置,占用13

例如:将“Bill Gates”(10个字符)存储到varchar(40)里,当你以后从这个字段中取出此数据时,取出的数据长度为10个字符; 
若将其存储到char(40),取出的数据长度为40个字符,字符串后面会被附加上空格。

长度超过,mysql自动截断
因为char的长度固定,所以存取速度要比varchar快很多,方便存储和查找,但是占用了很多空间
varchar节省了存储空间,因随值的长度变化而变化,所以varchar(50)和varchar(200)存储hello所占空间一样,但后者在

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值