Mysql的基本操作(补充)

嗯。。。。。。
上一篇讲到中文数据问题,只是做了一个实例,然而并没有成功,那么我们接着来解决这个问题。。。。

  • 中文数据问题

计算机最先识别自己支持的字符集


查看所有字符集

服务器识别39种字符集,所以自然会有一种是和人打交道的,所以我们就得查看一下服务器默认对外处理的字符集



所以我们可以得出结论,中文数据创建不成功的根源就是:客户端数据只能是GBK,而服务器认为是utf8,所以产生矛盾。所以我们的解决方案是,改变服务器,将默认接收字符集改变为GBK:

修改了字符集之后呢,我们在插入一条中文数据试试能不能成功


插入中文数据成功

插入数据成功之后,我们查看一下效果:

我们已经修改了废物我默认接收的字符集,为什么插入的数据是乱码呢?原因就是,数据的来源是服务器,而解析数据的是客户端,客户端只能识别GBK(两个字节一个汉字),而服务器给的数据却是UTF8(三个字节一个汉字),所以会出现乱码问题。
所以我们需要修改客户端给服务器的数据字符集为GBK:

需要注意的是,set设置的字符集只在当前打开的数据库有效,关闭当前数据库,在重新打开,又得重新设置,但是每次这样配置都很麻烦,所以,我们可以 使用快捷方式:

大家观察就可以发现,直接使用set names gbk;命令相当于一次性修改了character_set_cline、character_set_connection和character_set_results三个字符集connection连接层是字符集转变的中间层,如果能够统一效率更高,但是不统一也没有什么影响。

校对集(数据的比较方式)

校对集的三种格式:
_bin:binary,二进制比较,取出二进制位,从左往右比,先遇到谁谁就大,区分大小写
_cs:case senstive,大小写敏感,区分大小写。
_ci:case insensitice,大小写不敏感,不区分大小写。(默认校对集)
我们先来查看一下数据库到底支持哪些校对集



查看出来,总共有197种,我只截取了其中一部分。
那么校对集有什么用处呢?上面已经提到了,校对集是数据的比较方式。,因此,只有当数据产生比较时,校对集才会生效。


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前段时间公司内部博客上凯哥分享了一篇关于mysql字符集编码的文章,之前我对mysql字符集一块基本没有深究过,看...
    __七把刀__阅读 6,467评论 14 18
  • 字符集是一套文字符号及其编码,比较规则的集合 满足应用支持语言的需求,如果应用要处理各种各样的文字,或者将发布到使...
    微日月阅读 367评论 0 0
  • MySQL字符集 1、基本概念 字符(Character): 是指人类语言中最小的表义符号。例如'A'、'B...
    Jesper2357阅读 1,294评论 0 0
  • 基本操作:CRUD(Create增、Retrieve查、Update改、Delete删)SQL基本操作根据操作对象...
    pomelo_西阅读 2,912评论 0 2
  • what are u doing..? I have been trying so hard to contact...
    ce98fac88ed6阅读 195评论 0 0