字符串类型
utf8字符集 一个汉字占3个字节
GBK字符集 一个汉字占2个字节,一个字母占一个字节
char和varchar
1、char(M)M为该字符串占的最大长度,长度为0~255字节之间任意值,占用固定字节,查询时不区分大小写。
2、varchar(M)长度为0~65535字节之间任意值,以ascii码为例。实际占字节数为实际字符长度的基础上加1,因为最后有个结束标志符占用一个字节。最大能存2w~6w个汉字(受字符集影响),utf8最多可以存22000左右个汉字(受字符集影响),5.0版本以前也只能存255个字节。
3、char和varchar中字符串最后有空格的话,char不保留空格,varchar保留空格。char每个值都占用M个字节,如果某个长度小于M,MySQL就会在它的右边用空格字符补足.(在检索操作中那些填补出来的空格字符将被去掉),一个汉字也表示一个字符,按字符存储。
4、如果插入字符串长度超过限制会提示不能插入
text类型
TINYTEXT 允许长度0~255字节 存储空间值的长度+2个字节
TEXT 允许长度0~65535字节 存储空间为值的长度+2个字节,最大也能存2w~6w个汉字(受字符集影响),text不能全文索引,不能加默认值
MEDIUMTEXT 允许长度0~167772150字节 存储空间为值的长度+3个字节
LONGTEXT 允许长度0~4294967295字节 存储空间为值的长度+4个字节
ENUM类型
格式:属性名 ENUM('值1','值2',...,'值n'); 值最多可以有65535个,这些值末尾的空格将会被系统直接删除,向表中插入的字符只能是ENUM中限定的字符串。
如果加了not null限制,那么不允许插入NULL值,如果不指定插入值默认插入值1。
如果不加not null限制,那么不指定插入值或者插入值为NULL,都显示插入的是NULL。
SET类型
格式:属性名 SET('值1','值2',...,'值n'); 这些值末尾的空格将会被系统直接删除,向表中插入的字符只能是ENUM中限定的字符串,可以其中的多个值的组合,取多个值时,不同值之间用逗号隔开,最多只能有64个值构成。
如插入:set类型取值表为('a','b','c','d'),插入值为('b')和('a,c,d')。显示b和a,c,d。
mysql字符串类型
最新推荐文章于 2024-05-16 16:18:40 发布