MySQL字符集和校對規則(character set & collation)
檢視所有可用字符集:
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 '字符集'
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29734436/viewspace-2152102/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mysql關於字符集character set的總結MySql
- 字符集和比較規則
- 從根上理解 MySQL 的字符集和比較規則MySql
- Qt #pragma execution_character_set("utf-8") 執行字符集QT
- TiDB 6.0 新特性解讀 | Collation 規則TiDB
- 關於mysql字符集及排序規則設定MySql排序
- TiDB 6.0 新特性解讀丨 Collation 規則TiDB
- MySQL 字符集與亂碼與collation設定的問題?MySql
- 《Oracle MySQL程式設計自學與面試指南》05:字符集和校對集OracleMySql程式設計面試
- Unknown initial character set index ‘255‘ received from server. Initial client character set can beIndexServerclient
- MySQL:簡單記錄character_set_server影響引數MySqlServer
- SQLServer的排序規則(字符集編碼)SQLServer排序
- 關於MySQL中的8個 character_set 變數說明MySql變數
- 2021-2-18:請你說說MySQL的字符集與排序規則對開發有哪些影響?MySql排序
- 資料庫建庫時字符集和排序規則的選擇資料庫排序
- mysql字符集和字元排序MySql字元排序
- 前端Vue中常用rules校驗規則前端Vue
- SpringBoot專案校驗規則優化Spring Boot優化
- 正整數表單校驗規則
- 對線面試官:Mysql組合索引的生效規則面試MySql索引
- 【MySQL】批次修改排序規則MySql排序
- Angular8 form 表單對隱藏元素取消表單校驗規則AngularORM
- laravel 校驗規則 Rule::in 等對中文字元不友好的問題Laravel字元
- map和set對vector排序排序
- 使用jakarta.validation自定義校驗規則
- Mysql 如何更改default collation_connection settingMySql
- MYSQL collation 選好還能換嗎MySql
- Mysql-基本的規則與規範MySql
- MySQL鎖(四)行鎖的加鎖規則和案例MySql
- MySQL字符集MySql
- springMVC:校驗框架:多規則校驗,巢狀校驗,分組校驗;ssm整合技術SpringMVC框架巢狀SSM
- MySQL 裡的 find_in_set () 和 in () 和 likeMySql
- MySQL檢視和修改字符集的方法MySql
- Vue中form表單常用rules校驗規則VueORM
- sentinel流控規則校驗之原始碼分析原始碼
- MyISAM DEFAULT CHARACTER SET utf8 提示匯入錯誤
- Spring MVC 基於URL的攔截和對映規則SpringMVC
- MySQL索引選擇及規則整理MySql索引