二者都是字段的字符数据类型,这点是相同的,主要不同在于二者的存储办法,以及查询。
char是固定长度的,而varchar是不固定长度的。
比如:某字段的格式为char(8)。那么这个字段的长度就是8,就算你仅仅存了一个字符a,它占用的空间也是8个长度的字符占用的空间的大小,也就是说char比较浪费存储空间。
相对而言,varchar就是一个可以变的字符类型,比如varchar2(8)表示最长可以存8位的字符,但是如果你仅仅存了一个a,那么这个a占用的存储仅仅为它本身占用的一个字符长度。
也就是说从存储来说:varchar2比char节省一些空间。
从查询来说:这个没有实际的例子证明,但是大部分人认为char字段的查询比varchar要快一些,但是偶估计除非数据量特别大,不然这点看不太出来的。