char(M)類型的數據列裏,每個值都占用M個字節,如果某個長度小於M,MySQL就會在它的右邊用空格字符補足.(在檢索操作中那些填補出來的空格字符將被去掉)在varchar(M)類型的數據列裏,每個值只占用剛好夠用的字節再加上壹個用來記錄其長度的字節(即總長度為L+1字節).
在MySQL中用來判斷是否需要進行對據列類型轉換的規則
1、在壹個數據表裏,如果每壹個數據列的長度都是固定的,那麽每壹個數據行的長度也將是固定的.
2、只要數據表裏有壹個數據列的長度的可變的,那麽各數據行的長度都是可變的.
3、如果某個數據表裏的數據行的長度是可變的,那麽,為了節約存儲空間,MySQL會把這個數據表裏的固定長度類型的數據列轉換為相應的可變長度類型.
例外:長度小於4個字符的char數據列不會被轉換為varchar類型
希望對妳有幫助