今天要在mysql数据库中建立一个表,遇到了char与varchar的问题,在文档中,有的字段类型用varchar(30),有的字段用char(6)
一时弄糊涂了,赶紧去网上查找资料,终于弄明白,并整理了一下
首先char和varchar都是字符数据类型
char(n)是静态的,即固定长度为n,非Unicode编码,n介于1~8000,存储大小为n个字节,在SQL92中对应character
varchar(n)是可变长度的,非Unicode编码,n介于1~8000,存储大小为实际字符大小,小于等于n,在SQL91中对应char varying。
当希望数据大小相近,或字段长度一致的话就用char,可以提高索引速度
char可用于存储MD5的密码
用varchar可以节省存储空间