mysql中varchar和char的區(qū)別?
char是一種固定長度的類型,varchar則是一種可變長度的類型,它們的區(qū)別是:char(M)類型的數(shù)據(jù)列里,每個值都占用M個字節(jié),如果某個長度小于M,mysql就會在它的右邊用空格字符補(bǔ)足.(在檢索操作中那些填補(bǔ)出來的空格字符將被去掉)在varchar(M)類型的數(shù)據(jù)列里,每個值只占用剛好夠用的字節(jié)再加上一個用來記錄其長度的字節(jié)(即總長度為L+1字節(jié)).在MySQL中用來判斷是否需要進(jìn)行對據(jù)列類型轉(zhuǎn)換的規(guī)則1、在一個數(shù)據(jù)表里,如果每一個數(shù)據(jù)列的長度都是固定的,那么每一個數(shù)據(jù)行的長度也將是固定的.2、只要數(shù)據(jù)表里有一個數(shù)據(jù)列的長度的可變的,那么各數(shù)據(jù)行的長度都是可變的.3、如果某個數(shù)據(jù)表里的數(shù)據(jù)行的長度是可變的,那么,為了節(jié)約存儲空間,MySQL會把這個數(shù)據(jù)表里的固定長度類型的數(shù)據(jù)列轉(zhuǎn)換為相應(yīng)的可變長度類型.