char和varchar的长度都在1到8000之间,它们的区别在于char是定长字符数据,而varchar是变长字符数据。
所谓定长就是长度是固定的,当输入的数据长度没有达到指定的长度时将自动以英文空格在其后面填充,使长度达到相应的长度;
而变长字符数据则不会以空格填充。
举例来说,varchar(10),我们给它赋的值是abc,那么它在数据库中存储的值就是abc;同样,char(10),我们给它赋的值是abc,
那么它在数据库中存储的值就是htmer+7个空格。
由于char是以固定长度的,所以它的速度会比varchar快,但程序处理起来要麻烦一点,要用trim之类的函数把后边的空格去掉。
另外,char与varchar相比,前者的存储空间要比后者大。所以,在实际使用中要根据实际情况,如果能确定字符长度,那就用char,
如果不能确定而又想节省点存储空间,那就用varchar。