总结:
VARCHAR是可变长度,在存储时,它是根据待存储的数据长度来分配存储空间。需要多用一个字节来存放长度信息(不占用varchar指定的长度)。
CHAR是固定长度,在存储时,它是根据CHAR指定的长度来分配存储空间。如果待存储的数据长度小于CHAR规定的长度,则用空格补齐。
因此VARCHAR相比CHAR节省了存储空间,但由于CHAR的长度固定,所以提高存储的效率。
CHAR(1)与VARCHAR(1)这两个定义,有什么区别?虽然这两个都只能够用来保存单个的字符,但是 VARCHAR要比CHAR多占用一个存储位置。这主要是因为使用VARCHAR数据类型时,会多用1个字节用来存储长度信息。这个开销CHAR 字符类型是没有的。