(6)mysql中的字符集
來(lái)源:程序員人生 發(fā)布時(shí)間:2015-04-24 08:23:35 閱讀次數(shù):3284次
概述
??從本質(zhì)上來(lái)說(shuō),計(jì)算機(jī)只辨認(rèn)2進(jìn)制代碼,因此,不論計(jì)算機(jī)程序還是其處理的數(shù)據(jù),終究都必須轉(zhuǎn)化為2進(jìn)制碼,計(jì)算機(jī)才能辨認(rèn)。人們給每個(gè)文字符號(hào)編碼以便計(jì)算機(jī)辨認(rèn)處理,這就是計(jì)算機(jī)字符集的由來(lái)。
選擇適合的字符集
MySQL5.6支持幾10種字符集,包括UCS⑵、UTF⑴6、UTF⑴6LE、UTF⑶2、UTF⑻、utf8mb4等Unicode字符集,選擇字符集可以斟酌以下幾個(gè)因素:
- 滿足利用支持語(yǔ)言需求,如果利用需要處理各式各樣的文字,應(yīng)當(dāng)選擇Unicode編碼,對(duì)MySQL,建議為UTF⑻;
- 如果利用中觸及已有數(shù)據(jù)導(dǎo)入,要充分斟酌數(shù)據(jù)庫(kù)字符集對(duì)已有數(shù)據(jù)的兼容性。
- 如果數(shù)據(jù)庫(kù)只需要支持1般中文,數(shù)據(jù)量大,性能要求較高,那可以選擇雙字節(jié)定長(zhǎng)編碼的中文字符集,比如GBK,由于相對(duì)UTF⑻,GBK比較小,每一個(gè)漢字只占2個(gè)字節(jié),utf⑻漢字需要3個(gè)字節(jié);相反,如果主要處理英文字符,選擇UTF⑻更好,由于GBK,UCS⑵,UTF⑴6中的西文字符編碼都是2個(gè)字節(jié)。
- 如果數(shù)據(jù)庫(kù)需要做大量的字符運(yùn)算,選擇定長(zhǎng)字符集更好1些。
- 如果所有的客戶端程序都支持相同的字符集,則優(yōu)先選擇該字符集作為數(shù)據(jù)庫(kù)的字符集。
經(jīng)常使用字符集比較:

MySQL字符集
- MySQL支持在同1臺(tái)服務(wù)器,同1個(gè)數(shù)據(jù)庫(kù),乃至同1個(gè)表的不同字段都可使用不同的字符集。
- MySQL字符集包括
字符集
和校訂規(guī)則
;其中字符集用來(lái)定義MySQL存儲(chǔ)字符串的方式,校訂規(guī)則用來(lái)定義字符串比較方式,字符集與校訂規(guī)則是1對(duì)多的關(guān)系。
- MySQL有4個(gè)級(jí)別的默許設(shè)置:服務(wù)器級(jí),數(shù)據(jù)庫(kù)級(jí),表級(jí),字段級(jí)。服務(wù)器級(jí)可以在MySQL配置文件(my.cnf)中設(shè)置
character-set-server=utf⑻
;其他是創(chuàng)建時(shí)候設(shè)置。
- 對(duì)實(shí)際利用中, 還存在客戶端和服務(wù)器之間的字符集和校訂規(guī)則設(shè)置。MySQL提供3個(gè)參數(shù)設(shè)置:
character_set_client
、character_set_connection
、character_set_results
分別代表客戶端、連接、返回結(jié)果的字符集。通常不會(huì)單獨(dú)設(shè)置這3個(gè)參數(shù),可以通過(guò)命令:set names ***
來(lái)設(shè)置,還可以設(shè)置my.cnf中的default-character-set=utf⑻
來(lái)設(shè)置。
MySQL字符集系統(tǒng)變量含義以下:

生活不易,碼農(nóng)辛苦
如果您覺(jué)得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)