varchar與char有什麼區別?

2021-10-12 18:53:55 字數 390 閱讀 2737

區別一,

定長和變長

char 表示定長,長度固定,varchar表示變長,即長度可變。char如果插入的長度小於定義長度時,則用空格填充;varchar小於定義長度時,還是按實際長度儲存,插入多長就存多長。

因為其長度固定,char的訪問速度還是要比varchar要快得多,方便程式的儲存與查詢;但是char也為此付出的是空間的代價,因為其長度固定,所以會佔據多餘的空間,可謂是以空間換取時間效率。varchar則剛好相反,以時間換空間。

區別之二,儲存的容量不同

對 char 來說,最多能存放的字元個數 255,和編碼無關。

而 varchar 呢,最多能存放 65532 個字元。varchar的最大有效長度由最大行大小和使用的字符集確定。整體最大長度是 65,532位元組。

有了VARCHAR,為什麼還要有CHAR?

varchar varchar往往用來儲存可變長度的字串。簡單的說,我們只是給其固定了乙個最大值,然後系統會根據實際儲存的資料量來分配合適的儲存空間。為此相比char字元資料而言,其能夠比固定長度型別占用更少的儲存空間。因為其長度是可變的,為此在資料進行更新時可能會導致一些額外的工作。如在更改前,其...

Varchar與char的區別

char 對英文 ascii 字元占用1個位元組,對乙個漢字占用2個位元組 varchar 的型別不以空格填滿,比如varchar 100 但它的值只是 qian 則它的值就是 qian 而char 不一樣,比如char 100 它的值是 qian 而實際上它在資料庫中是 qian qian後共有9...

varchar與char 的區別

char是一種固定長度的型別,varchar則是一種可變長度的型別,它們的區別是 char m 型別的資料列裡,每個值都占用m個位元組,如果某個長度小於m,mysql就會在它的右邊用空格字元補足 在檢索操作中那些填補出來的空格字元將被去掉 在varchar m 型別的資料列裡,每個值只占用剛好夠用的...