Mysql Char 和 Varchar的區別


 

CHARVARCHAR都是字符串類型,它們的具體區別為:

 

長度大小區別:

  • CHAR(M)定義的列的長度為固定的,M取值可以為0~255之間;
  • VARCHAR(M)定義的列的長度為可變長,M取值可以為0~65535之間,(VARCHAR的最大有效長度由最大行大小和使用 的字符集確定。整體最大長度是65,532字節)。

 

存數據時的區別:

  • CHAR值存儲時,如果字符數沒有達到定義的位數,會在后面用空格補全,再存入數據庫中。比如定義 CHAR(10),那么不論存儲的數據是否達到了10個字節,都要占去10個字節的空間,不足的自動用空格填充;
  • VARCHAR值保存時只保存需要的字符數,另加一個字節來記錄長度(如果列聲明的長度超過255,則使用兩個字節)。VARCHAR值保存時不進行填充

 

取數據時的區別:

  • 數據庫取CHAR值時,尾部的空格會被刪除;
  • 數據庫取VARCHAR值時,尾部的空格仍然保留。

 

總結:

 

  CHAR定長,一般用於固定長度的表單提交數據存儲 ;例如:身份證號,手機號,電話,密碼等;而VARCHAR不定長。

  從空間上考慮,VARCHAR更好,從效率上考慮,CHAR更好。
 
  這其中的選擇就需要我們根據情況自己考量。



免責聲明!

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



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