赞
踩
一、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所占空间一样,但后者在
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。