zoukankan      html  css  js  c++  java
  • MYSQL中VARCHAR长度怎么选?

      说明:IDE与数据库字段字符字符集均为UTF-8,MySQl版本5.7.x,JDK1.8.x

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

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

      -----------------------------------------------------------------

      在String源码中可以看到,String的length()方法返回的长度是字符

       -----------------------------------------------------------------

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

       -----------------------------------------------------------------

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

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

  • 相关阅读:
    博客园开通新随笔
    遍历两个数组,并输出数组中的不同内容
    1021-二叉树复制和左右子树互换
    1020-层次遍历二叉树
    1019-计算二叉树的高度和结点数
    1018-深度遍历二叉树
    1017-乘积最大
    1016-求幂
    1015-最大公约数和最小公倍数
    1014-数据的插入与删除
  • 原文地址:https://www.cnblogs.com/Libinkai/p/12295694.html
Copyright © 2011-2022 走看看