本文给大家带来了关于mysql中的CHAR 和 VARCHAR 类型之定义,在mysql中,汉字可以用CHAR和VARCHAR类型。CHAR和VARCHAR类型声明的长度表示用户想要保存的最大字符数。“CHAR(M)”为固定长度字符串,在定义时指定字符串列长;M表示列的长度,范围是“0~255”个字符。“VARCHAR(M)”是长度可变的字符串,M表示最大列的长度,范围是“0~65535”。
定义mysql中的CHAR 和 VARCHAR 类型
在MySQL 5.x版本中,CHAR和VARCHAR类型声明的长度表示你想要保存的最大字符数。例如,CHAR(30)可以占用30个字符。GBK内码的情况下,一个汉字占两个字节,但是在UTF-8内码的情况下,一个汉字需要占用三个字节。
字节,英文名称是Byte。Byte是Binary Term的缩写。一个字节代表八个比特。它是通常被作为计算机信息计量单位,不论被存储数据的类型为何。它也是程序设计语言里不可缺少的基本数据类型——整数。Byte可被缩写成B,例如MB表示Megabyte;Bit可被缩写成b,例如Mb表示Megabit。那么如果我们想定义最大能存储10个汉字的字段,该怎么定义呢?有了上面的说明,应该很明了了char(10)或者varchar(10)。我们来验证一下:
CREATE TABLE `t1` (
`str` varchar(10) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
向表中插入下列数据:
insert into `t1`(`str`) values ('一二三四五六七八九十');
insert into `t1`(`str`) values ('一二三四五六七八九十十一');
insert into `t1`(`str`) values ('abcdefghijklmnopqrst');
insert into `t1`(`str`) values ('1234567890123456');
由此可以印证上面说的内容,而且如果超出了定义的范围,mysql会自动截短,我们在实际应用中应该注意。
CHAR 和 VARCHAR 类型
CHAR(M) 为固定长度字符串,在定义时指定字符串列长。当保存时,在右侧填充空格以达到指定的长度。M 表示列的长度,范围是 0~255 个字符。
例如,CHAR(4) 定义了一个固定长度的字符串列,包含的字符个数最大为 4。当检索到 CHAR 值时,尾部的空格将被删除。
VARCHAR(M) 是长度可变的字符串,M 表示最大列的长度,M 的范围是 0~65535。VARCHAR 的最大实际长度由最长的行的大小和使用的字符集确定,而实际占用的空间为字符串的实际长度加 1。
例如,VARCHAR(50) 定义了一个最大长度为 50 的字符串,如果插入的字符串只有 10 个字符,则实际存储的字符串为 10 个字符和一个字符串结束字符。VARCHAR 在值保存和检索时尾部的空格仍保留。
关于mysql中的CHAR 和 VARCHAR 类型的定义解析就到这里,翼速应用平台内有更多相关资讯,欢迎查阅!
我来说两句