# 字符集 character - 字符 character 是各种文字和符号的总称 - 字符编码 character code 是计算机针对各种符号,在计算机中的一种二进制存储代号 - 字符集 character set 是多个字符的集合 常见的字符集 - ASCII 字符集 - GB2312 字符集 - Unicode 字符集 # 设置客户端字符集 ```sql -- 设置客户端字符集编码 set names gbk; -- 查看字符集编码设置 show variables like 'character_set_%'; +--------------------------+------------+ | Variable_name | Value | +---------+-----------------------------+ | character_set_client | gbk | | character_set_connection | gbk | | character_set_database | utf8mb4 | | character_set_filesystem | binary | | character_set_results | gbk | | character_set_server | utf8mb4 | | character_set_system | utf8 | | character_sets_dir | /usr/local/Cellar/mysql/8.0.16/share/mysql/charsets/ | +--------------------------+------------+ -- 插入中文字符 insert into tb_teacher (name, age) values ('张三', 23); ``` MySQL 与 MySQLd 之间有三层 - 客户端传入数据给服务端 client - 服务端返回数据给客户端 server - 客户端与服务端之间的连接 collection 变量 - character_set_client 客户端 - character_set_connection 连接层 - character_set_database 数据库 - character_set_results 结果集 修改变量 ```sql set 变量名 = 值; -- 修改单个变量 set character_set_client = gbk; -- 设置字符集 set names gbk; -- 等价于 set character_set_client = gbk; // 让服务器识别客户端传过去的数据 set character_set_connection = gbk; // 更好的帮助客户端与服务器端之间惊醒字符集转换 set character_set_results = gbk; // 告诉客户端服务器返回的数据 ``` https://www.bilibili.com/video/BV1Vx411g7uJ?p=15&spm_id_from=pageDriver