mysql数据类型问题

    char(M)类型的数据列里,每个值都占用M个字节,如果某个长度小于M,MySQL就会在它的右边用空格字符补足(在检索操作中那些填补出来的空格字符将被去掉)。而在varchar(M)类型的数据列里,每个值只占用刚好够用的字节再加上一个用来记录其长度的字节(即总长度为L+1字节)。

char是一种固定长度的类型,varchar则是一种可变长度的类型。

例如:a char(10)和b varchar(10),都存入'abc',则a占10个字节,b占3个字节;

CHAR和VARCHAR类型声明的长度表示你想要保存的最大字符数。例如,CHAR(30)可以占用30个字符(可以保存30个字母或者汉字)。

tinyint      1Byte  2^(1*8-1)-1      = 127

smallint     2Byte  2^(2*8-1) -1     = 32767

mediumint    3Byte   2^(3*8-1)-1         = 8388607

int        4Byte   2^(4*8-1)-1         = 2147483647

原文地址:https://www.cnblogs.com/andydao/p/3289651.html