首先要知道,一个汉字在MySQL中占几个字节是跟编码方式有关的
GBK编码:一个汉字占2个字节
UTF-8编码:一个汉字占3个字节
一般数据库设置的编码格式都是UTF-8,那就以UTF-8为例,varchar(10)只能存3个汉字吗?答案是不一定。
根据数据库不同而不同
mysql数据库varchar是以字符为单位的,一个汉字即一个字符,varchar(10)能存10个汉字,占30个字节。
CREATETABLE`account`(`id`int(11)NOTNULLAUTO_INCREMENT,`name`varchar(10)DEFAULTNULL,`balance`int(11)DEFAULTNULL,PRIMARYKEY(`id`))ENGINE=InnoDBAUTO_INCREMENT=7DEFAULTCHARSET=utf8;
超过10个字符报错
oracle数据库varchar2是以字节为单位的,varchar2(10)表示能存10个字节,一个汉字占3个字节,所以最多能存3个汉字。
如果是字母那就都一样了,一个字母在mysql数据库中占一个字符,在oracle数据库中占一个字节
版权归原作者 best program 所有, 如有侵权,请联系我们删除。