一尘不染

字符集和排序规则到底是什么意思?

mysql

我可以阅读 MySQL 文档,这很清楚。但是,如何决定要使用哪个字符集?整理对哪些数据有影响?

我要求对两者以及如何选择它们进行解释。


阅读 765

收藏
2020-05-17

共1个答案

一尘不染

从MySQL 文档

字符集 是一组符号和编码。甲 归类 为在一个字符集的字符进行比较的一组规则。让我们通过一个假想字符集的例子来清楚地区分。

假设我们有一个包含四个字母的字母:“ A”,“ B”,“ a”,“ b”。我们给每个字母一个数字:’A’= 0,’B’= 1,’a’=
2,’b’=3。字母’A’是一个符号,数字0是’A’的编码,并且所有四个字母及其编码的组合是一个字符集。

现在,假设我们要比较两个字符串值“ A”和“ B”。最简单的方法是查看编码:“ A”为0,“ B”为1。因为0小于1,所以我们说“ A”小于“
B”。现在,我们刚刚完成的操作是将排序规则应用于字符集。排序规则是一组规则(在这种情况下,只有一个规则):“比较编码”。我们将所有可能的排序规则中最简单的一种称为二进制排序规则。

但是,如果我们想说小写字母和大写字母是等效的呢?那么我们将至少有两个规则:(1)将小写字母“ a”和“ b”等同于“ A”和“
B”;(2)然后比较编码。我们称此为不区分大小写的排序规则。它比二进制排序规则要复杂一些。

在现实生活中,大多数字符集都有许多字符:不仅是“ A”和“
B”,而且还包括整个字母,有时甚至是多个字母或带有数千个字符的东部书写系统,以及许多特殊符号和标点符号。同样在现实生活中,大多数归类规则都有很多规则:不区分大小写,也没有重音符号(“重音符号”是附加在字符上的标记,如德语中的“ö”)和多字符映射(例如“
ö’=’OE’在两个德国归类之一中)。

2020-05-17