共计 2668 个字符,预计需要花费 7 分钟才能阅读完成。
本篇内容介绍了“MySQL 字符集和校对规则是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让丸趣 TV 小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
查看所有可用字符集:
mysql show character set;
+———-+—————————–+———————+——–+
| Charset | Description | Default collation | Maxlen |
+———-+—————————–+———————+——–+
| utf8 | UTF-8 Unicode | utf8_general_ci |
3 |
查看字符集 (character): 存儲方式 和 校對規則 (collation): 比較字符串的方式
select * from information_schema.character_sets
校對規則
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(二元,比較字符編碼值,對大小寫不敏感)
例:
select case when
A COLLATE utf8_general_ci= a collate utf8_general_ci then 1 else 0 end;
1
– 校對規則是 ci 時認為 A 和 a 相同
select case when A COLLATE utf8_bin= a collate utf8_bin then 1 else 0
end;
0
Mysql 字符集的設置
SERVER 服務器級別、DB 數據庫級、TABLE 表級、字段級
SERVER 服務器字符集和校對規則
1.
my.cnf (ini) 設置
[mysql]
character-set-server=utf8
2.
啟動選項
mysqld
–character-set-server=utf8
3.
編譯時指定
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 數據庫字符集合校對規則
在數據庫創建時指定,可以 alter database 修改,但是已有的數據不會修改
1 如果指定了 DB 字符集和校對則使用
2 如果指定了 DB 字符集沒指定校對,使用字符集默認校對
3 如果指定了 DB 校對沒指定字符集,使用校對相關字符集
4 如果沒有設定 DB 字符集和校對,使用 server 字符集和校對
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 表字符集和校對
CREATE TABLE `t` (
`id` varchar(100) DEFAULT NULL,
`context` text
) ENGINE=InnoDB DEFAULT
CHARSET=utf8
創建 table 時指定,如果未設置根據 db 字符集
連接字符集
character_set_client 客戶端字符集
character_set_connection 連接字符集
character_ser_results 返回字符集
這 3 個參數確保相同,保證寫入讀出都正常
設置:
[mysql]
default-character-set=utf8
可統一設置:
Set names utf8
強制設置字符集
select _utf8 字符集 ,_big5 字符集
“MySQL 字符集和校对规则是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注丸趣 TV 网站,丸趣 TV 小编将为大家输出更多高质量的实用文章!