首页 > 数据库技术 > 详细

MySQL的字符集(Character Set)和校对集(Collate)

时间:2016-08-02 17:20:40      阅读:305      评论:0      收藏:0      [点我收藏+]

遇到一个创建数据库的SQL语句

CREATE DATABASE testdb DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

注意:这里指定字符集是用utf8,而不是utf-8。


对上面的SQL语句中的CHARACTER SET 和 COLLATE产生了兴趣。


简单来说,CHARACTER SET是指字符集,而COLLATE是指校对集(可以理解为排序规则)。


1、Character Set


1.1、字符集的4个层次

mysql4.1及其之后的版本,对字符集的支持分为四个层次:

服务器(server),数据库(database),数据表(table)和连接(connection):

character_set_server:这是设置服务器使用的字符集
character_set_client :这是设置客户端发送查询使用的字符集
character_set_connection :这是设置服务器需要将收到的查询串转换成的字符集
character_set_results :这是设置服务器要将结果数据转换到的字符集,转换后才发送给客户端


可以通过下面的SQL语句来查看这4个值

SHOW VARIABLES LIKE ‘%character_set%‘;

技术分享


1.2、字符集的整个过程

- client发送一个查询;
- 服务器收到查询,将查询串从character_set_client 转换到character_set_connection,然后执行转换后的查询;
- 服务器将结果数据转换到character_set_results字符集后发送回客户端。


1.3、设置字符集

1、告诉服务器发送的数据是什么类型的 character_set_client

2、告诉转换器,转换什么编码 character_set_connection

3、查询结果用什么编码 character_set_results

如果以上三者都为字符集N,可简写为set names N;


例如,执行这三条命令:

set character_set_client=gbk;
set character_set_connection=gbk;
set_character_set_results=gbk;


这三句可以简写为

set names gbk;


1.4、查看所有字符集

SHOW CHARACTER SET;

技术分享





2、Collate

Collate 可以理解为,排序规则等。一个字符集可能有多种校对集合;



查看所有的Collation

SHOW COLLATION;

技术分享



参考地址:

http://blog.sina.com.cn/s/blog_9707fac301016wxm.html

http://www.2cto.com/database/201310/248493.html

http://www.cnblogs.com/zzwlovegfj/archive/2012/06/25/2560649.html

http://blog.csdn.net/ACMAIN_CHM/article/details/4174186












MySQL的字符集(Character Set)和校对集(Collate)

原文:http://lsieun.blog.51cto.com/9210464/1833478

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!