mysql中的char,varchar,text类型
写这个是因为前段时间写了一个短网址的,一直都会出现错误(写短网址当然是为了缩短阿里妈妈的推广链接了),之前一直不知道为什么,有时候可以,有时候不可以,以为是编码的问题。后来通过获取的链接和写入MYSQL数据库的链接进行了对比,发现duang了一下短了。才明白原来是MYSQL字符属性的问题。(不知道叫什么,就叫他属性吧)
刚开始是用char,不行,改成了varchar(255),还是短。干脆就改成了text.
char:最大长度是255字符,注意是字符数和字符集没关系。可以有默认值,尾部有空格会被截断。
varchar:最大长度65535是指能存储的字节数,其实最多只能存储65532个字节,还有3个字节用于存储长度。注意是字节数这个和字符集有关系。一个汉字字符用utf8占用3字节,用gbk占用2字节。可以有默认值,尾部有空格不会截断。
text和varchar基本相同:text会忽略指定的大小这和varchar有所不同,text不能有默认值。尾部有空格不会被截断。text使用额外的2个字节来存储数据的大小,varchar根据存储数据的大小选择用几个字节来存储。text的65535字节全部用来存储数据,varchar则会占用1-3个字节去存储数据大小。
好吧,上面是百度的,简单的讲,就算有字符长度的限制了。一个阿里妈妈的链接有些是超过255的,不信你去取一个过来数数!绝对有超过255个字符的。换了text就再也不担心长度不够用了!