char是一種固定長度
的類型,
varchar則是一種可變長度
的類型,
它們的區別是:spa
char(M)類型的數據列裏,每一個值都佔用M個字節,若是某個長度小於M,MySQL就會在它的右邊用空格字符補足。(在檢索操做中那些填補出來的空格字符將被去掉)code
varchar(M)類型的數據列裏,每一個值只佔用恰好夠用的字節再加上一個用來記錄其長度的字節。(即總長度爲L+1字節)數據
在MySQL中用來判斷是否須要進行對據列類型轉換的規則類型轉換
一、在一個數據表裏,若是每個數據列的長度都是固定的,那麼每個數據行的長度也將是固定的。co
二、只要數據表裏有一個數據列的長度的可變的,那麼各數據行的長度都是可變的。字符
三、若是某個數據表裏的數據行的長度是可變的,那麼,爲了節約存儲空間,MySQL會把這個數據表裏的固定長度類型的數據列轉換爲相應的可變長度類型。background