MYSQL中VARCHAR长度怎么选?

  说明:IDE与数据库字段字符字符集均为UTF-8

  在设计数据库的时候,我们往往要给字段设置最大长度:如下图所示,设定name字段最长长度为16,那么在插入数据的时候,最多可以插入多长的数据呢?MYSQL中VARCHAR长度怎么选?_第1张图片

  结论:最长长度即调用java字符串的length方法返回的结果,即数据库字段的长度单位为 字符

MYSQL中VARCHAR长度怎么选?_第2张图片MYSQL中VARCHAR长度怎么选?_第3张图片

 

  如果插入数据超过数据库字段的最大长度,则会抛出“Data too long for column”异常

MYSQL中VARCHAR长度怎么选?_第4张图片MYSQL中VARCHAR长度怎么选?_第5张图片MYSQL中VARCHAR长度怎么选?_第6张图片

 

  我们知道,由于中文的体系很大,中文与英文字符在计算机中的表示方式并不一样,但是如上图所示,16个汉字“哈”组成的字符串与15个字母与一个英文符号组成的字符串,其length方法调用返回值均为16,这是因为我们平时用的是字符,而每一个字符后面的字节数是不一定的。一般来说,UTF-8编码方式下,一个中文字符由3个字节组成;GBK编码方式下,一个中文字符由2个字节组成;ISO-8859-1编码方式下,一个中文字符由1个字节组成。由下面的图片可以推算出其对应关系。

MYSQL中VARCHAR长度怎么选?_第7张图片

MYSQL中VARCHAR长度怎么选?_第8张图片

  在Web开发过程中,一般由前端检测数据长度;为了防止前端的检测被绕过,可以在后端再做一次检测

你可能感兴趣的:(MYSQL中VARCHAR长度怎么选?)