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開發過程中,一般由前端檢測數據長度;為了防止前端的檢測被繞過,可以在后端再做一次檢測


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM