mysql常用字符集和排序规则

本文最后更新于 2024-12-11 09:50:20

utf8mb4utf8mb3 的区别

  1. utf8mb3

    • 它是一个较旧的字符集,用于存储 UTF-8 编码的字符数据,最多支持 3 字节的字符。
    • 由于最多支持 3 字节,它不能存储一些超出基本多文种平面(BMP)范围的字符(例如 Emoji 表情等)。因此,它不支持所有的 Unicode 字符。
  2. utf8mb4

    • 它是 utf8mb3 的超集,能够支持 4 字节的字符,包括所有 Unicode 字符(如 emoji 和一些亚洲特殊字符等)。
    • 由于支持 4 字节,utf8mb4 能够存储更多种类的字符,尤其是 BMP 之外的字符
字符集 排序方式 描述
utf8mb3 utf8mb3_general_ci 不区分大小写的通用排序规则,适用于多种语言。
utf8mb3 utf8mb3_unicode_ci 更精确的 Unicode 排序,支持更多语言。
utf8mb4 utf8mb4_general_ci 不区分大小写的通用排序规则,适用于大多数语言。
utf8mb4 utf8mb4_unicode_ci 更精确的 Unicode 排序,支持更多语言的复杂排序。
utf8mb4 utf8mb4_bin 按字节顺序比较字符,区分大小写,非常精确的二进制排序规则

xxxxx_0900_ai_ci

  1. **0900**:

    • 0900 代表 MySQL 版本 8.0(MySQL 8.0 版本引入了新的 Unicode 排序规则)。这个数字表示该排序规则是在 MySQL 8.0 中引入的,并且它基于 Unicode 9.0 规范进行优化。
  2. **ai**:

    • ai 代表 accent insensitive(不区分重音)。在进行字符比较时,这种排序规则会忽略字符中的重音符号(例如,ée 被视为相同的字符)。
  3. **ci**:

    • ci 代表 case insensitive(不区分大小写)。在字符比较时,它会忽略大小写的差异(例如,Aa 被视为相同的字符)

  • as = accent sensitive(区分重音)

    cs = case sensitive(区分大小写

  常用uft8mb4utf8mb4_0900_ai_ci


mysql常用字符集和排序规则
https://one-and-one-fourth.github.io/2024/12/11/mysql/mysql常用字符集/
作者
一又四分之一
发布于
2024-12-11 09:43:06
更新于
2024-12-11 09:50:20
许可协议