2017-11-25MySQL 中的校对集

您现在的位置是: 首页 > MySQL技术 > MySQL 中的校对集

298次阅读


charset是字符集,那校对集是什么呢?

校对集并不常用,我们知道它的概念即可

create table t21 (
    n char(2)
);

插入数据

insert into t21 values ('a'),('B'),('c'),('D');

1. 第一种排序: caDB


原因:

ascii字符集里,小写的a是96,大写的A是65


2. 第二种排序: DcBa


a,b,c,d..按字母增长,到z最大,符合人的生活习惯


这其实就是标准的不统一
   它牵扯到,字符排序时,谁拍前谁在后,那到底按谁说的算?
   字符集排序到底以谁的标准拍? --> 校对集
   以ascii字符集为例,ascii字符集只有一种,那它对应的校对集是否也只有一种呢?
   我们刚才的两种排序都没有错,这就牵扯到看你选什么校对集来排序了
   校对集就是字符集的排序规则,一套字符集可以有n套校对集


3. 看 phpmyadmin的 服务器连接校对,里面可以选择服务器的校对集


MySQL 中的校对集


4. 以gbk为例


1) gbk_bin

就是按照二进制排序

2) gbk_chinese_ci

ci 指的是 common 普通的意思,就是指普通的排序,按照人的习惯来排序
   存性别的时候,用tinyint 比 char(1) 快,因为char在查询的时候,往往要考虑校对集的问题,而tinyint一个数字完全不必考虑这个