《MYSQL教程MySQL中VARCHAR與CHAR格式數(shù)據(jù)的區(qū)別》要點(diǎn):
本文介紹了MYSQL教程MySQL中VARCHAR與CHAR格式數(shù)據(jù)的區(qū)別,希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
區(qū)別MYSQL學(xué)習(xí)
CHAR與VARCHAR類型類似,但它們保留和檢索的方式不同.CHAR有固定的長(zhǎng)度,而VARCHAR屬于可變長(zhǎng)的字符類型.它們最大長(zhǎng)度和是否尾部空格被保留等方面也不同.在存儲(chǔ)和檢索過(guò)程中不進(jìn)行大小寫(xiě)轉(zhuǎn)換.MYSQL學(xué)習(xí)
下面的表格顯示了將各種字符串值保留到CHAR(4)和VARCHAR(4)列后的結(jié)果,說(shuō)明了CHAR和VARCHAR之間的差別:MYSQL學(xué)習(xí)
值?CHAR(4)?存儲(chǔ)需求?VARCHAR(4)?存儲(chǔ)需求
''?' '?4個(gè)字節(jié)?''?1個(gè)字節(jié)
'ab'?'ab '?4個(gè)字節(jié)?'ab'?3個(gè)字節(jié)
'abcd'?'abcd'?4個(gè)字節(jié)?'abcd'?5個(gè)字節(jié)
'abcdefgh'?'abcd'?4個(gè)字節(jié)?'abcd'?5個(gè)字節(jié)MYSQL學(xué)習(xí)
從上面可以看得出來(lái)CHAR的長(zhǎng)度是固定的,不管你存儲(chǔ)的數(shù)據(jù)是多少他都會(huì)都固定的長(zhǎng)度.而VARCHAR則處可變長(zhǎng)度但他要在總長(zhǎng)度上加1字節(jié),這個(gè)用來(lái)存儲(chǔ)字符長(zhǎng)度(如果聲明的長(zhǎng)度超過(guò)255,則使用2個(gè)字節(jié)).所以實(shí)際應(yīng)用中用戶可以根據(jù)本身的數(shù)據(jù)類型來(lái)做.MYSQL學(xué)習(xí)
請(qǐng)注意,上表中最后一行的值只適用不使用嚴(yán)格模式時(shí);如果MySQL運(yùn)行在嚴(yán)格模式,超過(guò)列長(zhǎng)度的值不被保留,并且會(huì)出現(xiàn)錯(cuò)誤.MYSQL學(xué)習(xí)
從CHAR(4)和VARCHAR(4)列檢索的值并不總是相同,因?yàn)闄z索時(shí)從CHAR列刪除了尾部的空格.通過(guò)下面的例子說(shuō)明差別:MYSQL學(xué)習(xí)
mysql> CREATE TABLE test(a VARCHAR(4), b CHAR(4)); mysql> INSERT INTO test VALUES ('ab ', 'ab '); mysql> SELECT CONCAT(a, '+'), CONCAT(b, '+') FROM test;
結(jié)果如下:MYSQL學(xué)習(xí)
CONCAT(a, '+') CONCAT(b, '+') ab + ab+
從上面可以看出來(lái),由于某種原因CHAR有固定長(zhǎng)度,所以在處理速度上要比VARCHAR快很多,但是相對(duì)浪費(fèi)存儲(chǔ)空間,所以對(duì)存儲(chǔ)不大,但在速度上有要求的可以使用CHAR類型,反之可以用VARCHAR類型來(lái)實(shí)現(xiàn).MYSQL學(xué)習(xí)
建議MYSQL學(xué)習(xí)
MyISAM存儲(chǔ)引擎 建議使用固定長(zhǎng)度,數(shù)據(jù)列代替可變長(zhǎng)度的數(shù)據(jù)列
INNODB 存儲(chǔ)引擎 建議使用VARCHAR類型MYSQL學(xué)習(xí)
總結(jié)分析: MYSQL學(xué)習(xí)
筆墨字段若長(zhǎng)度固定,如:身分證號(hào)碼,就不要用 varchar 或 nvarchar,應(yīng)該用 char 或 nchar.
支持多語(yǔ)言的站點(diǎn)應(yīng)考慮使用 Unicode nchar 或 nvarchar 數(shù)據(jù)類型以盡量減少字符轉(zhuǎn)換問(wèn)題
筆墨字段若長(zhǎng)度不固定,如:地址,則該用 varchar 或 nvarchar.除了可節(jié)省存儲(chǔ)空間外,存取硬盤(pán)時(shí)也會(huì)較有效率MYSQL學(xué)習(xí)
《MYSQL教程MySQL中VARCHAR與CHAR格式數(shù)據(jù)的區(qū)別》是否對(duì)您有啟發(fā),歡迎查看更多與《MYSQL教程MySQL中VARCHAR與CHAR格式數(shù)據(jù)的區(qū)別》相關(guān)教程,學(xué)精學(xué)透。維易PHP學(xué)院為您提供精彩教程。
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/13965.html