MySQL字符串我們都比較熟悉了,下面就為您分析MySQL字符串中CHAR和VARCHAR的區別使用,希望可以對您學習MySQL字符串方面有所幫助。
MySQL數據庫的字符(串)類不要以為字符類型就是CHAR,CHAR和VARCHAR的區別在於CHAR是固定長度,只要你定義一個字段是CHAR(10),那麼不論你存儲的數據是否達到了10個字節,它都要占去10個字節的空間;而VARCHAR則是可變長度的,如果一個字段可能的值是不固定長度的,我們只知道它不可能超過10個字符,把它定義為VARCHAR(10)是最合算的,VARCHAR類型的占用空間是它的值的實際長度+1。
為什麼要+1呢?這一個字節用於保存實際使用了多大的長度。從這個+1中也應該看到,如果一個字段,它的可能值最長是10個字符,而多數情況下也就是用到了10個字符時,用VARCHAR就不合算了:因為在多數情況下,實際占用空間是11個字節,比用CHAR(10)還多占用一個字節。
舉個例子,就是一個存儲股票名稱和代碼的表,股票名稱絕大部分是四個字的,即8個字節;股票代碼,上海的是六位數字,深圳的是四位數字。這些都是固定長度的,股票名稱當然要用CHAR(8);股票代碼雖然是不固定長度,但如果使用VARCHAR(6),一個深圳的股票代碼實際占用空間是5個字節,而一個上海的股票代碼要占用7個字節!考慮到上海的股票數目比深圳的多,那麼用VARCHAR(6)就不如CHAR(6)合算了。
雖然一個CHAR或VARCHAR的最大長度可以到255,我認為大於20的CHAR是幾乎用不到的――很少有大於20個字節長度的固定長度的東東吧?不是固定長度的就用VARCHAR。大於100的VARCHAR也是幾乎用不到的――比這更大的用TEXT就好了。
TINYTEXT,最大長度為255,占用空間也是實際長度+1;TEXT,最大長度65535,占用空間是實際長度+2;MEDIUMTEXT,最大長度16777215,占用空間是實際長度+3;LONGTEXT,最大長度4294967295,占用空間是實際長度+4。為什麼+1、+2、+3、+4?你要是還不知道就該打PP了。這些可以用在論壇啊、新聞啊,什麼的,用來保存文章的正文。根據實際情況的不同,選擇從小到大的不同類型。
MySQL截取字符串函數方法
MySQL字符串各列類型的區別
MySQL批量替換指定字段字符串
MySQL字符串連接函數用法簡介
mysql查詢大小寫問題