<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
計算機儲存資料的方式都是二進位制資料,但是我們在mysql中儲存的是字串資料,那麼這些資料到底在Mysql中如何儲存呢?這就涉及到字元集的概念。
舉例如下,假設存在編碼集test,只能識別a,b,A,B這幾項,同時編碼規則如下:
a---->00000001(0x01)
b---->00000010(0x02)
A---->00000011(0x03)
B---->00000100(0x04)
那麼字串'aAB'可以對映為 000000010000001100000100(十六進位制 0x10304)
而ac將無法轉換,因為超出了識別範圍。
上面提到的將字串根據字元集對映為二進位制的過程稱之為編碼,反之就為解碼。
那什麼是比較規則呢?其實就是字串的比較規則,如上舉例而言,可以考慮比較二進位制編碼的大小,如字元'a'編碼值的十六進位製為0x01,字元'b'編碼值的十六進位製為0x02,那麼可以確定a<b,這就是二進位制比較規則,但是顯然這種規則適用範圍有限,如果遇到需要忽略大小寫的場景,顯然二進位制編碼比較規則並不適用,一個字元集可能對應多種比較規則。
根據上面的舉例我們知道了test字元集描述的就是一個字元範圍的界定,我們常用的字元集還有很多如下所示
這是一個最簡單的字元集包含128個字元包含大小寫字母,空格,數位,標點符號,特殊字元等,因為總共只有128個字元,那麼可以只採用一個位元組編碼。
在ASCII字元集上擴充了128個西歐常用字元,總共包含256個字元,這個字元集又被稱為latin1。
收錄漢字以及拉丁字母,希臘字母等,這種字元集相容ASCII字元,在編碼規則如下:
這種情況編碼長度不確定的被稱為變長編碼。
GBK對GB2312的字元範圍進行的擴充,相容GB2312。
UniCode收錄了地球上的所有字元,是所有國家通用的字元集,由此又被稱為萬國碼,UniCode的編碼規則包含UTF8、UTF16、UTF32這幾種編碼方案,其中UTF8採用1~4個位元組編碼一個字元,UTF16使用了2個位元組或者4個位元組編碼一個字元,UTF32採用4個位元組編碼一個字元。
不過需要注意的是Mysql中沒有區分編碼方案和字元集,所以後續的uft8可以看作字元集。
在mysql中有兩個特殊的字元集:
查詢字元集命令可以採用show character set;
或者show charset;
都可以實現字元集檢視,可以支援字元集模糊查詢如show character set like '%utf8%';
##### mysql5.7.26版本中,包含41個字元集,下面列出常用的幾個 mysql> show character set; +----------+---------------------------------+---------------------+--------+ | Charset | Description | Default collation | Maxlen | +----------+---------------------------------+---------------------+--------+ | latin1 | cp1252 West European | latin1_swedish_ci | 1 | | ascii | US ASCII | ascii_general_ci | 1 | | gb2312 | GB2312 Simplified Chinese | gb2312_chinese_ci | 2 | | gbk | GBK Simplified Chinese | gbk_chinese_ci | 2 | | utf8 | UTF-8 Unicode | utf8_general_ci | 3 | | utf8mb4 | UTF-8 Unicode | utf8mb4_general_ci | 4 | ........ +----------+---------------------------------+---------------------+--------+ 41 rows in set (0.00 sec)
每個字元集都會對應一些比較規則,查詢所有字元集的比較規則顯然是太多了,所以這裡以utf8字元集為例查詢比較規則。
#### mysql5.7.26版本中utf8字元集對應27個比較規則,其餘省略 mysql> show collation like '%utf8_%'; +--------------------------+---------+-----+---------+----------+---------+ | Collation | Charset | Id | Default | Compiled | Sortlen | +--------------------------+---------+-----+---------+----------+---------+ | utf8_general_ci | utf8 | 33 | Yes | Yes | 1 | | utf8_bin | utf8 | 83 | | Yes | 1 | | utf8_unicode_ci | utf8 | 192 | | Yes | 8 | | utf8_spanish_ci | utf8 | 199 | | Yes | 8 | ......... +--------------------------+---------+-----+---------+----------+---------+ 27 rows in set (0.00 sec)
Default列為YES表明該比較規則是預設的,一般比較規則中包含general代表通用比較規則。
比較規則一般命名如規律如下:
字尾規則如下:
字尾 | 描述 |
---|---|
_ci | 不區分大小寫 |
_cs | 區分大小寫 |
_bin | 以二進位制的形式比較 |
_ai | 不區分重音 |
_as | 區分重音 |
到此這篇關於Mysql字元集和排序規則詳解的文章就介紹到這了,更多相關Mysql字元集內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45