目录
MySQL中除了数值类型外,另一个用的比较多的就是字符类型了。字符类型有很多不同种类:VARCHAR
,CHAR
,BLOB
,TEXT
VARCHAR和CHAR
VARCHAR
VARCHAR是变长的字符类型,实际的存储格式如下图所示:
VARCHAR类型由prefix
和data
组成,其中prefix
由一个或者两个字节构成,作用是指定data
的长度。如果data
的长度小于等于255,则prefix
只需要一个字节,因为一个字节可表示的最大的无符号数就是255,如果data
的长度大于255,则prefix
需要用两个字节表示,而两个字节可表示的最大的无符号数是65535,由此可知VARCHAR最大可以存储65535个字符。
CHAR
CHAR是定长的字符类型,实际的存储格式如下图所示:
和VARCHAR不同的是,CHAR中只存储实际的内容,没有用来指定长度的prefix
,并且CHAR最大可存储的字符数是255。假设一个CHAR(5)的字段,存储的内容只有4个字符,那么实际存储时会在最后加上1个空格来补齐至5个字符。而在查询时,返回的结果中末尾的空格将被移除,除非开启了PAD_CHAR_TO_FULL_LENGTH
模式。
一个CHAR(5)的字段&#