《MySQL是怎样运行的》-读书笔记(二)

121 阅读1分钟

字符集和比较规则

常见字符集

  • ASCII字符集
    • 共 128个字符
  • ISO-8859-1字符集
    • 共收录 256个字符, 在 ASCII字符集的基础上扩充了128个西欧常用字符 (这个字符集有一个别名 Latin1
  • GB2312字符集
    • 收录汉字6763个,收录其他文字符号682个。兼容ASCII字符集
  • GBK字符集
    • 对 GB2312字符集的扩充
  • UTF-8字符集
    • 几乎收录了世界上的全部字符,兼容ASCII字符集。采用变长编码,编码时使用 1~4个字节
    • utf8mb3: 阉割过的 UTF-8字符集,只使用了 1~3个字节表示字符
    • utf8mb4: 正宗的 UTF-8字符集,使用 1~4个字节表示字符

    在mysql 中,默认的utf8 就是 utf8mb3 的别名。
    如果要使用4个字节的utf8,则需要手动指定 utf8mb4

查看字符集的方法

show charset  

image.png

其中 default collation 指的比较规则(也就是两个字符如何比较大小)

查看比较规则

show collation

image.png

字符集和字符比较规则的应用

字符集级别

  • 服务器级别
    • character_set_server
    • collation_server
  • 数据库级别
    • character_set_database
    • collation_database
  • 表级别
  • 列级别

仅修改字符集或比较规则

  • 只修改字符集,则比较规则将变为修改后的字符集默认的比较规则
  • 只修改比较规则,则字符集将变成修改后的比较规则对应的字符集