携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第26天,点击查看活动详情
前言
上篇我们学习完了MySQL中的触发器。有兴趣的小伙伴可以阅读(# MySQL学习-触发器(二))。
下面我们继续学习MySQL中的字符集。
修改MySQL5.7字符集
在MySQL8.0版本之前,默认字符集是latin1,utf8字符集指向的是utf8mb3。开发中,我们经常会把编码修改为utf8字符集。如果忘记修改默认的编码,就会出现乱码的问题。从MySQL8.0开始,数据库的默认编码将改为utf8mb4,从而避免出现乱码的问题。
查看默认使用的字符集
SHOW VARIABLES like `character%`;
#或
SHOW VARIABLES like `%char%`;
使用以上语句,就可以查到数据库中拥有哪些字符集。在数据库中运行有以下几个参数结果:
- character_set_client:服务器解码请求时使用的字符集。
- character_set_connection:服务器处理请求时会把请求字符串从character_set_client转character_set_connection。
- character_set_database:当前数据库的字符集。
- character_set_server:服务器级别的字符集。
- character_set_results:服务器客户端返回数据时使用的字符集。
查看数据库的字符集
语法如下:
SHOW CREATE DATABASE testdb;
修改数据库的字符集
语法如下:
ALTER DATABASE [数据库名] CHARACTER SET [字符集名称];
查看数据表的字符集
语法如下:
SHOW CREATE TABLE [表名];
修改数据表的字符集
语法如下:
ALTER TABLE [表名] CHARACTER SET [字符集名称];
各级别的字符集
MySQL有4个级别的字符集分别是:
- 服务器级别:由character_set_server指定。
- 数据库级别:数据库级别的字符集默认跟随服务器级别的字符集,也可以自行指定不同的字符集。
- 表级别:表级别的字符集默认跟随数据库级别的字符集,也可以自行指定不同的字符集。
- 列级别:列级别的字符集默认跟随表级别的字符集,也可以自行指定不同的字符集。
今天先学到这里,明天继续。