摘自《深入浅出 MySQL数据库开发、优化与管理维护 》
CHAR 和 VARCHAR 类型类似,但它们保存和检索的方式不同。
1、它们的最大长度和是否尾部空格被保留等方面也不同。
2、在存储或检索过程中不进行大小写转换,从 CHAR(4)和 VARCHAR(4)列检索的值并不总是相同,因为检索时从 CHAR
列删除了尾部的空格。
下面的表显示了将各种字符串值保存到 CHAR(4)和 VARCHAR(4)列后的结果,说明了 CHAR 和VARCHAR 之间的差别:
检验其检索的区别:
mysql> CREATE TABLE vc(v VARCHAR(4),c CHAR(4)); Query OK, 0 rows affected (0.05 sec) mysql> INSERT INTO vc VALUES('ab ','ab '); Query OK, 1 row affected (0.01 sec) mysql> SELECT CONCAT(v,'+'),CONCAT(c,'+')FROM vc; +---------------+---------------+ | CONCAT(v,'+') | CONCAT(c,'+') | +---------------+---------------+ | ab + | ab+ | +---------------+---------------+ 1 row in set (0.00 sec)