char在英語中的意思是燒黑,燒焦的意思,而varchar的意思就是可變字符串的意思,這兩個(gè)單詞雖然是英文,但是它們?cè)陔娔X領(lǐng)域都有自己特定的意思,如果是從字面上分析,我們可以看出這兩者的區(qū)別就是三個(gè)字母的區(qū)別,那么它們真正的意思有什么不同呢?接下來看一看小編的分享吧。
區(qū)別一:
首先明確的是,char的長度是不可變的,而varchar的長度是可變的,
區(qū)別二:
定義一個(gè)char[10]和varchar[10],如果存進(jìn)去的dao是‘a(chǎn)bcd’,那么char所占的長度依然為10,除了字符‘a(chǎn)bcd’外,后面跟六個(gè)空格,而varchar就立馬把長度變?yōu)?了,取數(shù)據(jù)的時(shí)候,char類型的要用trim()去掉多余的空格,而varchar是不需要的,
區(qū)別三:
char的存取數(shù)度還是要比varchar要快得多,因?yàn)槠溟L度固定,方便程序的存儲(chǔ)與查找;但是char也為此付出的是空間的代價(jià),因?yàn)槠溟L度固定,所以難免會(huì)有多余的空格占位符占據(jù)空間,可謂是以空間換取時(shí)間效率,而varchar是以空間效率為首位的。
區(qū)別四:
char的存儲(chǔ)方式是,對(duì)英文字符(ASCII)占用1個(gè)字節(jié),對(duì)一個(gè)漢字占用兩個(gè)字節(jié);而varchar的存儲(chǔ)方式是,對(duì)每個(gè)英文字符占用2個(gè)字節(jié),漢字也占用2個(gè)字節(jié),兩者的存儲(chǔ)數(shù)據(jù)都非unicode的字符數(shù)據(jù)。
上面就是小編今天分享給大家的關(guān)于char與varchar的小知識(shí)啦,大家是不是已經(jīng)非常清楚的知道這兩者的意思和區(qū)別了呢?
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com