MySQL学习1-7 字符集

  • 字符编码概念

字符(Character)是各种文字和符号的总称,包括各国家文字,图形符号,数字等.


在计算机中所看到的任何内容都是字符构成的.


字符编码(character code)是计算机针对各种符号,在计算机中的一种二进制存储代号.

 

  • 字符集概念

字符集(Character set)是多个字符的集合,字符集种类较多,每个字符集包含的字符个数不同

常见的字符集:ASCII字符集(美国标准交换码),GB2312字符集(中文),BIG5字符集(香港台湾用的繁体字),GB18030字符集,Unicode字符集等. 

计算机要准确处理各种字符集文字,需要进行字符编码,以便计算机能够识别和存储各种文字.中文文字数目大,而且还分为简体和繁体中文两种不同书写规则的文字,而计算机最初是按英语单词字节符设计的,因此,对中文字符进行编码,是中文信息交流的基础.

  • 设置客户端所有字符集

如果直接通过cmd下的mysql.exe进行中文数据插入,那么可能出错.

出错原因:

    1.用户是通过mysql.exe来操作mysqld,exe

    2.真正的SQL执行时mysqld.exe来执行

    3.mysql.exe将数据传入mysqld.exe的时候,没有告知其对应的符号规则(字符集),而mysqld.exe也没有能力自己判断,就会使用自己默认的字符集.

解决方案:

    mysql.exe客户端在进行数据操作之前将自己所使用的字符集告诉mysqld.exe  cmd下的mysql.exe默认都只是一个字符集,GBK.

    mysql.exe如何告知mysqld.exe对应的字符集类型为gbk?

    快捷方式:  set names 字符集

-- mysql.exe 告知 mysqld.exe 自己的字符集规则是什么.
set names gbk;

    重新进行数据插入: 中文(GBK)


深层原理: 客户端,服务端,连接层 ( show variables like 'character_set_%' )

mysql.exe 与 mysqld.exe 之间的处理关系一共分为三层

    客户端传入数据给服务端: client : character_set_client

    服务端返回数据给客户端: server : character_set_results

    客户端与服务端之间的连接: connection : character_set_connection

set names 字符集的本质: 就是一次性打通三层关系的字符集,变的一致.

在系统中有三个变量来记录着着三个关系对应的字符集 : show variables like 'character_set_%';


怎样证明呢?

查看一个新的客户端对应的字符集关系


-- 修改变量
set character_set_client = gbk;

重新进行数据插入和查看的结果: 插入OK,但是查看乱码.

解决: 修改结果字符集为 GBK

set character_set_results = gbk;

connection 只是为了更方便客户端与服务端进行字符集转换而设

                                                  Set character_set_client = gbk;          //为了让服务器识别客户端传来的数据

Ser names gbk;       ===>        Set character_set_connection = gbk;   //更好的帮助客户端与服务端之间进行字符集转换

                                                  Set character_set_results = gbk;       //为了告诉客户端服务端所有的返回的数据字符集

 

 

ps:这个我有点蒙?

花了好几天,终于把这个第一天就该学完的东西弄完了.?

这个少个:    使用字符集保存数据和显示系统字符集       

额...  有木有推介的学习MySQL视频或者资料(一位小菜鸟的求助)?

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值