一、什么是字符集与校对
1.字符集与校对
字符集是指一种从二进制编码到某种字符符号的映射。
校队是指一组用于某个字符集的配许规则。
2.utf8与utf8mb4
标准的UTF-8字符集编码是可以使用1-4个字节去编码21位字符,这几乎包含了世界上所有能看见的语言。
MySQL里面实现的utf8最长使用3个字符,包含了大多数字符但并不是所有。例如emoji和一些不常用的汉字,如“墅”,这些需要四个字节才能编码的就不支持。
MySQL在5.5.3之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode。好在utf8mb4是utf8的超集,除了将编码改为utf8mb4外不需要做其他转换。建议选用utf8mb4的编码。
二、如何设置字符集与校队
数据库默认字符集设置:character_set_server
表的字符集设置:将根据数据库的字符集设置来指定这个表的字符集
列的字符集设置:将根据表的设置来指定列的字符集设置
注意:真正存放数据的是列,所以更高“阶梯”的设置只是制定默认值。一个表的默认字符集设置,无法影响存储在这个表中某个列的值。只有当创建列,而没为列有指定字符集的时候,表的默认字符集才会在列上生效。
1.查看、修改数据库字符集与校对
1)查看
SHOW VARIABLES WHERE Variable_name LIKE ‘character\_set\_%‘ OR Variable_name LIKE ‘collation%‘;
2)修改
在配置文件中修改
character_set_server = utf8mb4
collation_server = utf8mb4_unicode_ci
2.查看、修改指定数据库的字符集与校对
1)查看
SHOW CREATE DATABASE dbname;
2)修改
ALTER DATABASE db_name DEFAULT CHARACTER SET character_name [COLLATE ...];
3.查看、修改表的字符集与校对
1)查看
SHOW CREATE TABLE tbl_name;
2)修改
修改表的字符集与校队
ALTER TABLE tbl_name DEFAULT CHARACTER SET character_name [COLLATE...];
修改表与列的字符集与校对
ALTER TABLE tbl_name CONVERT TO CHARACTER SET character_name [COLLATE ...] ;
4.查看、修改列的字符集与校对
1)查看
SHOW FULL COLUMNS FROM tbl_name;
2)修改
ALTER TABLE tbl_name CHANGE c_name c_name CHARACTER SET character_name [COLLATE ...];
原文地址:https://www.cnblogs.com/xibuhaohao/p/9927992.html