1、區別一,定長和變長
char 表示定長,長度固定,varchar表示變長,即長度可變。當所插入的字串超出它們的長度時,視情況來處理,如果是嚴格模式,則會拒絕插入並提示錯誤資訊,如果是寬鬆模式,則會擷取然後插入。如果插入的字串長度小於定義長度時,則會以不同的方式來處理,如char(10),表示儲存的是10個字元,無論你插入的是多少,都是10個,如果少於10個,則用空格填滿。而varchar(10),小於10個的話,則插入多少個字元就存多少個。
varchar怎麼知道所儲存字串的長度呢?實際上,對於varchar欄位來說,需要使用乙個(如果字串長度小於255)或兩個位元組(長度大於255)來儲存字串的長度。但是因為他需要有乙個prefix來表示他具體bytes數是多少(因為varchar是變長的,沒有這個長度值他不知道如何讀取資料)。
2、儲存的容量不同
對 char 來說,最多能存放的字元個數 255,和編碼無關。
而 varchar 呢,最多能存放 65532 個字元。varchar 的最大有效長度由最大行大小和使用的字符集確定。整體最大長度是 65,532位元組
Oracle之char和varchar區別及踩坑
char和varchar區別及踩坑 char與varchar2都是oracle的資料儲存格式。char是定長的,varchar2是變長。都可以儲存字串。同樣儲存乙個字元 a char 占用了10個字元 a佔乙個,另外9個使用空格占用 varchar2只占用了 乙個字元 注意 乙個中文佔兩個字元 三個...
char和varchar2 varchar的區別
char和varchar2 varchar的區別 1 char是長度固定的型別,varchar2是動態變化的,譬如 存在字串 abcde 對於乙個大小為char 20 而言,它將儲存20個字元,但是有15個是空字元,而varchar 20 則是占用3個位元組的長度,20只是能儲存的最大值。2 cha...
char和varchar的區別
char char是定長的,也就是當你輸入的字元小於你指定的數目時,char 8 你輸入的字元小於8時,它會再後面補空值。當你輸入的字元大於指定的數時,它會擷取超出的字元。nvarchar n 包含 n 個字元的可變長度 unicode 字元資料。n 的值必須介於 1 與 4,000 之間。位元組的...