一、查看所有可用的字符集

1.  使用 `SHOW CHARACTER SET;` 命令

    这是最直接的方法,结果清晰,包含四列关键信息:

       `Charset`:字符集名称(如 `utf8mb4`)。

       `Description`:字符集描述。

       `Default collation`:该字符集的**默认校对规则**。

       `Maxlen`:该字符集中**单个字符最多占用的字节数**。这是选择字符集的重要依据(例如,`utf8` 的 `Maxlen` 是 3,而 `utf8mb4` 是 4,后者才能存储表情符号)。

 

2.  查询 `information_schema.character_sets` 系统表

    SELECT * FROM information_schema.character_sets;

    这种方法更适合通过 SQL 条件进行过滤查询,获取到的信息与 `SHOW CHARACTER SET;` 基本相同。

 

常用字符集速查:

 

字符集描述最大字节长度推荐使用场景
utf8mb4真正的 UTF-8 Unicode4绝对首选,支持所有语言和表情符号(emoji)
utf8阉割版的 UTF-8 (仅支持基本多文种平面字符)3旧系统遗留,不推荐新项目使用
gbk中文简体2仅处理简体中文的旧系统
latin1西欧字符1MySQL 5.x 的默认字符集,不推荐
ascii美国 ASCII1仅需存储英文、数字、符号时


二、查看特定字符集的校对规则

1.  使用 `SHOW COLLATION` 命令

       查看所有校对规则:

      SHOW COLLATION;

       查看特定字符集(如 `gbk`)的校对规则(**您演示的方法非常常用**):

      SHOW COLLATION LIKE 'gbk%';

      结果中的关键列:

         `Collation`:校对规则名称。

         `Charset`:该校对规则对应的字符集。

         `Default`:是否为该字符集的默认校对规则(`Yes` / `""`)。

         `Compiled`:是否已编译到服务器中。

 

2.  查询 `information_schema.collations` 系统表

    SELECT * FROM information_schema.collations WHERE CHARACTER_SET_NAME = 'gbk';

    通过 `WHERE` 条件过滤,效果与 `SHOW COLLATION LIKE 'gbk%';` 相同。

 

三、理解并测试校对规则(您提供的例子非常经典)

 使用 gbk_chinese_ci (case insensitive) 校对规则比较,不区分大小写

SELECT CASE WHEN 'A' COLLATE gbk_chinese_ci = 'a' COLLATE gbk_chinese_ci THEN 1 ELSE 0 END;

 结果: 1 (相等)

 使用 gbk_bin (binary) 校对规则比较,区分大小写

SELECT CASE WHEN 'A' COLLATE gbk_bin = 'a' COLLATE gbk_bin THEN 1 ELSE 0 END;

 结果: 0 (不相等)

 

四、查看当前服务器、数据库、连接的字符集/校对规则设置

查看字符集设置:

SHOW VARIABLES LIKE 'character_set_%';

查看校对规则设置:

SHOW VARIABLES LIKE 'collation_%';
点赞(0)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)