您当前的位置: 首页 >  sql

liaowenxiong

暂无认证

  • 1浏览

    0关注

    1171博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

MySQL的set names命令详解

liaowenxiong 发布时间:2021-10-09 11:25:53 ,浏览量:1

执行下面的命令:

mysql> set names charset_name;

相当于执行了下面三条命令语句:

mysql> SET character_set_client = charset_name;
mysql> SET character_set_results = charset_name;
mysql> SET character_set_connection = charset_name;

所以 set names 是设置上面三个内置系统变量的快捷键命令。

官方文档的解释:

1.character_set_client 是指客户端发送过来的语句的编码; 2.character_set_connection 是指 mysqld 收到客户端的语句后,要转换到的编码; 3.character_set_results 是指 server 执行语句后,返回给客户端的数据的编码。

对人来说,能够理解的是各种各样的符号,而对计算机来说,只能理解二进制,二进制和符号之间的对应关系就是编码。不同地域国家都有自己的一套符号集合,每套符号集合都各自用一组二进制数字表示,从而形成了不同的编码方案,字符集其实就是二进制编码和符号的对应关系集合。

同一个二进制数在不同的字符集下可能对应不一样的字符,如在 GBK 字符集中,0xC4E3 对应的是“你”,而在 big5 字符集中对应的是“斕”,而“你”在 unicode 中的编码是 0x4F60,在 Collation-Charts 这个网站有字符集和编码对应关系图,可以非常直观地看到不同编码下二进制数和符号的对应关系。

set names 设置的三个系统变量就是设置 mysqld 和客户端通信时,mysqld 应该如何解码 client 发来的字符,以及如何编码返回给客户端的结果。

字符在 MySQL 中的编码转换流程如下:

在这里插入图片描述

关注
打赏
1661566967
查看更多评论
立即登录/注册

微信扫码登录

0.0781s