# 第 10 章字符集、排序规则、Unicode

目录

10.1 一般字符集和排序规则

10.2 MySQL 中的字符集和排序规则

10.2.1 字符集曲目

10.2.2 元数据的 UTF-8

10.3 指定字符集和排序规则

10.3.1 排序规则命名约定

10.3.2 服务器字符集和排序规则

10.3.3 数据库字符集和排序规则

10.3.4 表格字符集和排序规则

10.3.5 列字符集和排序规则

10.3.6 字符串文字字符集和排序规则

10.3.7 国家字符集

10.3.8 字符集介绍器

10.3.9 字符集和排序规则分配示例

10.3.10 与其他 DBMS 的兼容性

10.4 连接字符集和排序规则

10.5 配置应用程序字符集和排序规则

10.6 错误信息字符集

10.7 列字符集转换

10.8 整理问题

10.8.1 在 SQL 语句中使用 COLLATE

10.8.2 COLLATE 子句优先级

10.8.3 字符集和排序规则兼容性

10.8.4 表达式中的校对强制力

10.8.5 二进制排序规则比较_分类整理

10.8.6 整理效果的例子

10.8.7 在 INFORMATION 中使用排序规则_SCHEMA 搜索

10.9 Unicode 支持

10.9.1 utf8mb4 字符集(4 字节 UTF-8 Unicode 编码)

10.9.2 utf8mb3 字符集(3 字节 UTF-8 Unicode 编码)

10.9.3 utf8 字符集(utf8mb3 的别名)

10.9.4 ucs2 字符集(UCS-2 Unicode 编码)

10.9.5 utf16 字符集(UTF-16 Unicode 编码)

10.9.6 utf16le 字符集(UTF-16LE Unicode 编码)

10.9.7 utf32 字符集(UTF-32 Unicode 编码)

10.9.8 在 3 字节和 4 字节 Unicode 字符集之间转换

10.10 支持的字符集和排序规则

10.10.1 Unicode 字符集

10.10.2 西欧字符集

10.10.3 中欧字符集

10.10.4 南欧和中东字符集

10.10.5 波罗的海字符集

10.10.6 西里尔字符集

10.10.7 亚洲字符集

10.10.8 二进制字符集

10.11 字符集限制

10.12 设置错误信息语言

10.13 添加字符集

10.13.1 字符定义数组

10.13.2 复杂字符集的字符串整理支持

10.13.3 复杂字符集的多字节字符支持

10.14 向字符集添加排序规则

10.14.1 排序规则实现类型

10.14.2 选择归类 ID

10.14.3 向 8 位字符集添加简单排序规则

10.14.4 将 UCA 归类添加到 Unicode 字符集

10.15 字符集配置

10.16 MySQL 服务器语言环境支持

MySQL 包括字符集支持,使您能够使用各种字符集存储数据并根据各种排序规则执行比较。默认的 MySQL 服务器字符集和排序规则是utf8mb4utf8mb4_0900_ai_ci,但您可以在服务器、数据库、表、列和字符串文字级别指定字符集。

本章讨论以下主题:

  • 什么是字符集和排序规则?

  • 字符集分配的多级默认系统。

  • 用于指定字符集和排序规则的语法。

  • 受影响的功能和操作。

  • Unicode 支持。

  • 可用的字符集和排序规则,带有注释。

  • 选择错误消息的语言。

  • 选择日期和月份名称的语言环境。

    字符集问题不仅影响数据存储,还影响客户端程序和 MySQL 服务器之间的通信。如果您希望客户端程序使用不同于默认字符集的字符集与服务器通信,则需要指明是哪一个。例如,要使用utf8Unicode 字符集,连接服务器后发出此语句:

SET NAMES 'utf8';

有关为应用程序使用配置字符集以及客户端/服务器通信中与字符集相关的问题的更多信息,请参阅第 10.5 节,“配置应用程序字符集和排序规则”, 和第 10.4 节,“连接字符集和排序规则”.