character_set_client = x 
character_set_results = x
character_set_connection = x; 我们常用在mysql操作类中使用这三面,下面大概说下作用:   character_set_client 客户端使用的编码,如GBK, UTF8 比如你写的sql语句是什么编码的。
  character_set_results 查询返回的结果集的编码(从数据库读取的数据是什么编码的)。
  character_set_connection 连接使用的编码 它们之前存在一个转换过程(具本的还请见手册): character_set_client -> character_set_connection >内部操作字符集->character_set_results
见一篇文章:http://www.cnblogs.com/discuss/articles/1862248.html
如:utf8->utf8->utf8  gbk->utf8->utf8

类似于gbk->utf8->utf8这样的转换,有些同学可能有个疑问:
  character_set_client 是gbk
  character_set_connection 是utf8
  character_set_results 也是utf8
  
  为什么不滤过character_set_connection部分,而它在这个中间阶段起到一个什么样的作用。
google时,http://stackoverflow.com/questions/16082480/what-is-the-purpose-of-character-set-connection
老外也提到过样的问题,本人英语差得很,也没怎么看完,最后转而去看手册去了。 在手册中发现一句话:转换时,服务器使用character_set_connection和collation_connection系统变量。它将客户端发送的查询从character_set_client系统变量转换到character_set_connection(除非字符串文字具有象_latin1或_utf8的引介词)。collation_connection对比较文字字符串是重要的。对于列值的字符串比较,它不重要,因为列具有更高的 校对规则优先级。
请反复读下这段话,尤其是红色部分。现在说下我的理解:我们操作数据库时,大多于表有关,但是并不是说操作数据库一定要于表有关,如果使用表,则表和字段的字符集有优先,比如直接select length('中国人'),如果character_set_connection是utf8的则输出9,如果是gbk则输出6。各位可以通过修改字符集变量测试下。我想character_set_connection存在的意义大多是类似于此类用法吧。 如有说的不对的地方,请指正下,或者有更多的说法,也请说下。

mysql中character_set_connection的作用的更多相关文章

  1. mysql中BLACKHOOL的作用

    MySQL在5.x系列提供了Blackhole引擎–"黑洞". 其作用正如其名字一样:任何写入到此引擎的数据均会被丢弃掉, 不做实际存储:Select语句的内容永远是空. 和Lin ...

  2. MySql中delimiter的作用是什么?

    这个命令与存储过程没什么关系吧.其实就是告诉mysql解释器,该段命令是否已经结束了,mysql是否可以执行了.默认情况下,delimiter是分号;.在命令行客户端中,如果有一行命令以分号结束,那么 ...

  3. MySQL中optimize的作用

    MySQL执行命令delete语句时,如果包括where条件,并不会真正的把数据从表中删除,而是将数据转换成了碎片,通过下面的命令可以查看表中的碎片数量和索引等信息: mysql > show ...

  4. mysql中EXPLAIN 的作用

    (一)id列: (1).id 相同执行顺序由上到下 mysql> explain -> SELECT*FROM tb_order tb1 -> LEFT JOIN tb_produc ...

  5. MySQL数据库中delimiter的作用概述

    以下的文章主要是向大家描述的是MySQL数据库中delimiter的作用是什么?我们一般都认为这个命令和存储过程关系不大,到底是不是这样的呢?以下的文章将会给你相关的知识,望你会有所收获. 其实就是告 ...

  6. mysql中OPTIMIZE TABLE的作用

    转载▼ 1.先来看看多次删除插入操作后的表索引情况 mysql> SHOW INDEX FROM `tbl_name`; +----------+------------+----------- ...

  7. MySQL中的主键,外键有什么作用详解

    MySQL中的主键,外键有什么作用详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 学关系型数据库的同学,尤其在学习主键和外键时会产生一定的困惑.那么今天我们就把这个困惑连根拔起 ...

  8. MySQL 中,\g和\G的作用

    MySQL 中,\g和\G的作用: \g 的作用是 go (\g) Send command to mysql server. \G 的作用是将查询到的结果,每行显示一个字段和字段值,方便查看 ego ...

  9. mysql explain中key_len的作用

    mysql explain中key_len的作用key_len越小 索引效果越好 name的字段类型是varchar(20),字符编码是utf8,一个字符占用3个字节,那么key_len应该是 20* ...

随机推荐

  1. [ZOJ 1002] Fire Net (简单地图搜索)

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1002 题目大意: 给你一个n*n的地图,地图上的空白部分可以放棋 ...

  2. springMVC spring hibernate pom.xml备份

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...

  3. linux下udp编程

    #include<sys/types.h> #include<sys/socket.h> #include<unistd.h> #include<netine ...

  4. visual studio 中快捷键的使用

    我在使用编辑器的过程中是比较喜欢使用快捷键的,因为这样可以在操作中更加便捷 ①ctrl+k,ctrl+d,代码重排 ②ctrl+k,k就是ctrl键加连续两次k键,添加书签,然后通过ctrl+k,ct ...

  5. JavaScript对象的创建之外部属性定义方式(基于已有对象扩充其属性和方法)

    var person = new Object(); person.name = "luogk"; person.age = 33; person.say = function() ...

  6. IIS7.0设置404错误页,返回500状态码

    一般在II6下,设置自定义404错误页时,只需要在错误页中选择自定义的页面,做自己的404页面即可.但是在IIS7.0及以上时,设置完404错误页后,会发现状态码返回的是500,并且可能会引起页面乱码 ...

  7. hive数据导出和常用操作

    导出到本地文件 insert overwrite local directory '/home/hadoop'select * from test1; 导出到hdfs insert overwrite ...

  8. 虚拟内存和swap分区的关系

    首先,这两个概念分别对应windows和linux,即:windows:虚拟内存linux:swap分区 windows即使物理内存没有用完也会去用到虚拟内存,而Linux不一样 Linux只有当物理 ...

  9. 【Linux】部署cobbler

    环境Centos 6.3,本地挂载镜像配置本地yum源 yum -y install dhcp httpd xinetd tftp-server http://dl.fedoraproject.org ...

  10. gulp sass使用

    var gulp = require("gulp");var sass = require("gulp-sass-china");var dgbl = requ ...