共計(jì) 2668 個(gè)字符,預(yù)計(jì)需要花費(fèi) 7 分鐘才能閱讀完成。
本篇內(nèi)容介紹了“MySQL 字符集和校對(duì)規(guī)則是什么”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓丸趣 TV 小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
查看所有可用字符集:
mysql show character set;
+———-+—————————–+———————+——–+
| Charset | Description | Default collation | Maxlen |
+———-+—————————–+———————+——–+
| utf8 | UTF-8 Unicode | utf8_general_ci |
3 |
查看字符集 (character): 存儲(chǔ)方式 和 校對(duì)規(guī)則 (collation): 比較字符串的方式
select * from information_schema.character_sets
校對(duì)規(guī)則
mysql show collation like %gbk%
+—————-+———+—-+———+———-+———+
| Collation | Charset | Id |
Default | Compiled | Sortlen |
+—————-+———+—-+———+———-+———+
| gbk_chinese_ci | gbk | 28 |
Yes | Yes |
1 |
| gbk_bin | gbk | 87 | | Yes |
1 |
+—————-+———+—-+———+———-+———+
2 rows in set (0.00 sec)
命名約定:
字符集名開始 +:
_ci (大小寫不敏感)
_cs(大小寫敏感)
_bin(二元,比較字符編碼值,對(duì)大小寫不敏感)
例:
select case when
A COLLATE utf8_general_ci= a collate utf8_general_ci then 1 else 0 end;
1
– 校對(duì)規(guī)則是 ci 時(shí)認(rèn)為 A 和 a 相同
select case when A COLLATE utf8_bin= a collate utf8_bin then 1 else 0
end;
0
Mysql 字符集的設(shè)置
SERVER 服務(wù)器級(jí)別、DB 數(shù)據(jù)庫(kù)級(jí)、TABLE 表級(jí)、字段級(jí)
SERVER 服務(wù)器字符集和校對(duì)規(guī)則
1.
my.cnf (ini) 設(shè)置
[mysql]
character-set-server=utf8
2.
啟動(dòng)選項(xiàng)
mysqld
–character-set-server=utf8
3.
編譯時(shí)指定
cmake . –DDEFAULT_CHARSET=utf8
如果以上都沒有指定則使用:latin1
mysql show variables like character_set_server%
+———————-+——-+
| Variable_name | Value |
+———————-+——-+
| character_set_server | utf8 |
+———————-+——-+
1 row in set (0.00 sec)
mysql show variables like collation_server%
+——————+—————–+
| Variable_name | Value |
+——————+—————–+
| collation_server | utf8_general_ci |
+——————+—————–+
1 row in set (0.00 sec)
DB 數(shù)據(jù)庫(kù)字符集合校對(duì)規(guī)則
在數(shù)據(jù)庫(kù)創(chuàng)建時(shí)指定,可以 alter database 修改,但是已有的數(shù)據(jù)不會(huì)修改
1 如果指定了 DB 字符集和校對(duì)則使用
2 如果指定了 DB 字符集沒指定校對(duì),使用字符集默認(rèn)校對(duì)
3 如果指定了 DB 校對(duì)沒指定字符集,使用校對(duì)相關(guān)字符集
4 如果沒有設(shè)定 DB 字符集和校對(duì),使用 server 字符集和校對(duì)
mysql show
variables like character_set_database%
+————————+——-+
Variable_name | Value |
+————————+——-+
character_set_database | utf8 |
+————————+——-+
1 row in set
(0.00 sec)
mysql show
variables like collation_database%
+——————–+—————–+
Variable_name | Value |
+——————–+—————–+
collation_database | utf8_general_ci |
+——————–+—————–+
1 row in set
(0.00 sec)
Table 表字符集和校對(duì)
CREATE TABLE `t` (
`id` varchar(100) DEFAULT NULL,
`context` text
) ENGINE=InnoDB DEFAULT
CHARSET=utf8
創(chuàng)建 table 時(shí)指定,如果未設(shè)置根據(jù) db 字符集
連接字符集
character_set_client 客戶端字符集
character_set_connection 連接字符集
character_ser_results 返回字符集
這 3 個(gè)參數(shù)確保相同,保證寫入讀出都正常
設(shè)置:
[mysql]
default-character-set=utf8
可統(tǒng)一設(shè)置:
Set names utf8
強(qiáng)制設(shè)置字符集
select _utf8 字符集 ,_big5 字符集
“MySQL 字符集和校對(duì)規(guī)則是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注丸趣 TV 網(wǎng)站,丸趣 TV 小編將為大家輸出更多高質(zhì)量的實(shí)用文章!