1. 程式人生 > >mysql乾貨——資料庫字符集和校對規則詳解

mysql乾貨——資料庫字符集和校對規則詳解

在這裡插入圖片描述
一、什麼是字符集
字元是多個文字和符號的總稱,包括各個國家的文字、標點符號、圖形符號、數字等。字符集多個字元的集合。
字元集合種類較多,每個字符集包含的字元的個數不同。對於字符集不支援的字元,則以亂碼顯示。
常見的字符集有ASCII字符集、GBK字符集、GB2312字符集、GB18030字符集、Unicode字符集、BIG5字符集等。
ASCII:是基於羅馬字母表的一套電腦編碼系統,主要顯示英語和其他英語語言,它採用的是1位元組低七位來表示,高位始終為0;
GB2312:是中國國家標準的簡體中文字符集,它採用的是雙位元組來表示。
GB18030:是對GB2312的擴充,它採用的時單位元組、雙位元組和四位元組三種形式來表示。
Unicode:是電腦科學領域的一項業界標準,支援了所有國家的文字字元。
utf-8是Unicode的其中一種常用的使用方式,是一種針對Unicode可變長度的字元編碼,又稱萬國碼。
utf-16採用16位來表示,utf-32採用32位來表示。
二、什麼是校對規則
校對規則是在字符集內用於比較字元的一套規則,比如有的區分大小寫,有的則無視。
不同的字符集有著不同的校對規則。命名約定通常以字符集名稱開頭,並以_ci,_cs,_bin結束。
針對字符集utf8的的校對規則有20餘種,通用的有以下三種,也是utf8常用的三種。
(1) utf8_general_ci
case insensitive 不區分大小寫,字符集utf8預設的校對規則。
(2) utf8_general_cs
case sensitive 區分大小寫
(3) utf8_bin
binary 二元法,直接比較的字元編碼,可以區分大小寫,因為字符集的‘A’和’a’的編碼顯然不同。

mysql針對字符集和校檢規則的一些操作指令
#顯示mysql支援的所有字符集
show charset;
#顯示mysql支援的所有的校對集
show collattion;
#顯示當前資料庫使用的校檢規則
show variables like “collation_%”;

在mysql5.7.23版本中字符集有41種,校對規則有222種,並且mysql還在不斷的為其增加中,版本越高支援的字符集和校對規則越多。
文章來自:https://www.itjmd.com/news/show-3225.html