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开发过程中,一般由前端检测数据长度;为了防止前端的检测被绕过,可以在后端再做一次检测

  • 相关阅读:
    软件測试培训笔记
    spring test---測试SpringMvc初识
    第1章第3节 线性表的比較
    Remove Duplicates from Sorted List leetcode
    泛型
    我的改进版2048(1)
    docker镜像和加速
    在 Azure Web 应用中创建 PHP 应用程序
    使用 Azure 门户创建 Windows 虚拟机
    使用 Azure 门户创建 Linux 虚拟机
  • 原文地址:https://www.cnblogs.com/Libinkai/p/12295694.html
Copyright © 2011-2022 走看看