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

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%';
  • 查看库的字符集、校验集
show create database 库名
  • 查看表的字符集、校验集
show create table 表名;
  • 查看表字段的校验集
show full columns from 表名;

修改

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

校验规则

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

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字节空间。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值