校對規則:在當前編碼下,字元之間的比較順序。(cs大小寫敏感,ci大小寫不敏感,bin二進位制編碼比較)
1. 檢視當前校對規則 show collation;
每個字符集都支援不定數量的校對規則,下圖為檢視結果的部分截圖:
tip : 以big5_chinese_ci為例,其中big5表示字符集,ci表示校對規則,即 「字符集_地區名_校對規則」;
校對規則是依賴字符集而存在的,在設定字符集時,可以設定當前字符集的校對規則。
如果不設定校對規則,字符集會使用預設的校對規則。
2. 檢視某種特定字符集下的校對規則 show collation like 'pattern';
3. 以 gbk 為例,比較chinese_cin和bin之間的區別:
設定新錶 tb3 的校對規則為gbk_chinese_ci,而tb4的校對規則為gbk_bin;
show create table tb_name;檢視兩張表的建立資訊:
由於gbk_chinese_ci是預設校對規則,所以在tb3的建立資訊中,並不會寫出校對規則;
而tb4採用了非預設校對規則gbk_bin,右圖方框裡顯示了對應的設定。
對兩張表插入相同的三條資訊:
檢視此時,tb3 和 tb4 中的資料:
發現兩表中的資料是按照插入的順序排列的。
此時若使用排序關鍵字order by對兩表的資料進行排序,由於二者的校對規則不同,排序結果可能不同:
(order by :可以在獲得資料時,將資料按照某個字段進行排序)
tb3是gbk_chinese_ci,不區分大小寫,所以排序結果是a、b、c ;
tb4是gbk_bin,按編碼二進位制逐字節比較,a的asc碼是97,b的asc碼是 66 , c 的asc碼是99,因此排序結果是 b、a、c ;
tip: 校對規則並不影響資料的儲存,只是影響資料的排序;
字符集影響資料的儲存。
常用的校對規則是gbk_chinese_ci。
4. 檢視當前伺服器端字符集的設定 show variables;
若要檢視character set相關的字符集設定,語句為 show variables like 'character_set%';
tip : client/connection/results是連線時所用到的編碼,
database表示當前所選擇的資料庫的字符集,用show create database db_name;檢驗:
mysql 校對規則 MySQL 校對規則
校對規則 在當前編碼下,字元之間的比較順序。cs大小寫敏感,ci大小寫不敏感,bin二進位制編碼比較 1.檢視當前校對規則 show collation 每個字符集都支援不定數量的校對規則,下圖為檢視結果的部分截圖 tip 以big5 chinese ci為例,其中big5表示字符集,ci表示校對規...
mysql校對規則 MySQL中的校對規則
詳解mysql中的校對規則 welcome to the mysql monitor.commands end with or g.your mysql connection id is 7 server version 5.6.14 mysql community server gpl oracl...
mysql校對規則
字符集的概念大家都清楚,校對規則很多人不了解,一般資料庫開發中也用不到這個概念,mysql在這方便貌似很先進,大概介紹一下 簡要說明 字符集和校對規則 字符集是一套符號和編碼。校對規則是在字符集內用於比較字元的一套規則。mysql在collation提供較強的支援,oracel在這方面沒查到相應的資...