byte:-27 ~ 27-1,即-128 ~ 127。1字节。Byte。末尾加B
short:-215 ~ 215-1,即-32768 ~ 32767。2字节。Short。末尾加S
long:-263 ~ 263-1,即-9223372036854774808 ~ 9223372036854774807。8字节。Long。末尾加L。(也可以不加L)
有符号TinyInt: -27 (-128) ~ 27 - 1 (127) ,存储大小为 1 个字节。
无符号TinyInt: 0 ~255
有符号SmallInt : -215 (-32,768) ~215 - 1 (32,767) ,存储大小为2 个字节。
无符号SmallInt:0 ~65535
有符号MediumInt:一个中等大小整数。-8388608~8388607 ,存储大小为3 个字节。
无符号MediumInt:0~16777215。
有符号int:int(m):-231 ~ 231-1,即-2147483648 ~ 2147483647。存储大小为4字节。Integer。
无符号int:int(m)0~4294967295。
有符号BigInt :-263 (-9223372036854775808) ~ 263-1 (9223372036854775807) ,存储大小为 8 个字节
无符号BigInt :0~18446744073709551615。
浮点型:
有符号Float :单精度浮点型,8位精度(4字节) ,float(m,d):m表示的是最大长度,d表示的显示的小数位数。
例如上面的sql里:float(4,2) 表示:这个浮点数最大长度为5,也就是五位,然后小数部分为2位,至于存储范围,取决于你是否定义了无符号。
无符号的话,最小是0.0 最大能存储到9999.9,如果有符号的话,范围是:-99.99至99.99。
默认大小为24位数字,精度大约7位数字(经测试为6位),当设置M大小大于24时,自动转换为DOUBLE类型;同时设置M和D时不进行自动转换。
float的取值范围在-3.4E+38 和 3.4E+38
Double :double(m,d) 双精度浮点型 16位精度(8字节) m总个数,最大为,d小数位
设一个字段定义为float(6,3),如果插入一个数123.45678,实际数据库里存的是123.457,但总个数还以实际为准,即6位。整数部分最大是3位,如果插入数12.123456,存储的是12.1234,如果插入12.12,存储的是12.1200.
定点数:
Decimal :浮点型在数据库中存放的是近似值,而定点类型在数据库中存放的是精确值。
decimal(m,d) 参数m<65 是总个数,d<30且 d<m 是小数位。
字符类型:
Varchar :Varchar(M) ,变长字符串,要求M<=255
Char :Varchar(M) ,固定长度,M<=255
NChar :mysql5.7不支持,Nchar数据类型采用Unicode标准字符集,Unicode标准用两个字节为一个存储单位,可以同时出现中文、英文、法文等,而不会出现编码冲突取值范围1~4000,
TinyBlob :Max:255,最大255个字节
Blob :Max:64K,最大65535(2^16-1)个字节
MediumBlob:Max:16M,大小写敏感,最大16777215 (2^24-1)个字节
LongBlob :Max:4G,大小写敏感,最大4294967295 (2^32-1)个字节
Binary(n) :n指的是字节长度,特点是插入定长不足补0,n<=255
VarBinary(n):n指的是字节长度,特点是定长不补0,n<=65535
BINARY(N)和VARBINARY(N)中的N指的是字节长度,而CHAR(N)和VARCHAR(N)中N指的是的字符长度。对于BINARY(10) ,其可存储的字节固定为10,而对于CHAR(10) ,其可存储的字节视字符集的情况而定。
日期类型:
Date :以YYYY-MM-DD的格式显示,比如:2009-07-19
TimeStamp:以YYYY-MM-DD的格式显示,比如:2009-07-19,自动存储记录修改时间
DateTime :以YYYY-MM-DD HH:MM:SS的格式显示,比如:2009-07-19 11:22:30
Time :以HH:MM:SS的格式显示。比如:11:22:30
Year :以YYYY的格式显示。比如:2009