当前位置:   article > 正文

MySQL8字符、校验集的查看与修改_utf8mb4_0900_ai_ci 和 utf8mb4_0900_bin

utf8mb4_0900_ai_ci 和 utf8mb4_0900_bin

MySQL8默认使用utf8mb4\utf8mb4_0900_ai_ci。

在utf8 Unicode 编码下:每个字符的长度是不固定的,根据不同的字变化。

汉字

1个汉字为1个字符,常用汉字占3个字节,不常用的汉字占4个字节;

而MySQL的utf8又叫utf8mb3,存不了不常用的4个字节和emoji表情,所以新增了utf8mb4;

英文

1个英文字母为1个字符,占1个字节;

utf8mb4是utf8的超集,对于3个字节的汉字,存储形式是一致的,所以可以直接升级

查看

  • 查看MYSQL数据库服务器和数据库字符集、校验集
方法一:show variables like '%character%';
方法二:show variables like 'collation%';
  • 1
  • 2
  • 查看库的字符集、校验集
show create database 库名
  • 1
  • 查看表的字符集、校验集
show create table 表名;
  • 1
  • 查看表字段的校验集
show full columns from 表名;
  • 1

修改

  • 修改库字符集、校验集
alter schema 库名 default character set utf8mb4 collate utf8mb4_0900_ai_ci;
  • 1
  • 修改表字符集、校验集
alter table 表名 default character set utf8 collate utf8_bin;
  • 1
  • 单独修改表字段的字符集、校验集
alter table 表名 modify 字段名 字段属性 character set utf8mb4 collate utf8mb4_0900_ai_ci;
  • 1

校验规则

如果仅设置了字符集,系统会默认给校验集。

utf8mb4

默认校验为utf8mb4_0900_ai_ci,大小写不敏感

utf8mb4_0900_bin,大小写敏感

utf8

默认校验集为utf8_general_ci,大小写不敏感

utf8_bin,大小写敏感

关于代码插入emoji表情报错,请检查 表编码 和 数据库连接编码 是否同时为utf8mb4。

tips: 要使用 utf8mb4 节省空间,用 VARCHAR替换 CHAR。否则,MySQL必须为使用 utf8mb4字符集的列的每一个字符保留四字节的空间,因为其最大长度可能是四字节。

例如,MySQL必须为一个使用 utf8mb4 字符集的 char(10)的列保留40字节空间。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/264975
推荐阅读
相关标签
  

闽ICP备14008679号