char是一种固定长度的类型,varchar是一种可变长度的类型。
char列的长度固定为创建表时的长度,其范围为0~255。当保存为char类型时,在它们右边填充空格以达到指定的长度。当检索到char值时,尾部的空格被删除掉。在存储或检索的过程中不进行大小写转换。
varchar列中的值为可变长字符串,其范围为0~65535。varchar的最大有效长度由最大行大小和使用的字符集确定。
对于MyISAM表,推荐char类型;对于InnoDB表,推荐varchar类型。另外,在进行检索的时候,若列值的尾部含有空格,则char列会删除其尾部的空格,而varchar列则不会删除。