Chinaunix首页 | 论坛 | 博客
  • 博客访问: 961996
  • 博文数量: 83
  • 博客积分: 32
  • 博客等级: 民兵
  • 技术积分: 2080
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-12 09:45
个人简介

努力学习,努力分享,努力.....在努力..努力离开..

文章分类

全部博文(83)

文章存档

2017年(3)

2015年(1)

2014年(47)

2013年(32)

分类: Mysql/postgreSQL

2013-10-28 22:03:38

详解MySQL中的校对规则


Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 5.6.14 MySQL Community Server (GPL)


Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.


Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.


Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


mysql>
mysql>
mysql>
mysql> show collation like 'gbk%';
+----------------+---------+----+---------+----------+---------+
| Collation      | Charset | Id | Default | Compiled | Sortlen |
+----------------+---------+----+---------+----------+---------+
| gbk_chinese_ci | gbk     | 28 | Yes     | Yes      |       1 |
| gbk_bin        | gbk     | 87 |         | Yes      |       1 |
+----------------+---------+----+---------+----------+---------+
2 rows in set (0.25 sec)


mysql>




校对规则的命名规则是:它们以字符集名开始,通常包括一个语言名,并且以_ci(大小写不敏感)、cs(大小写敏感)或_bin(二元,既比较是基于字符编码的值而与language无关)结束.


那么我们来分析一下GBK字符集.gbk_chinese_ci则是默认的校对规则,大小写不敏感,gbk_bin按照编码值进行比较,大小写敏感


接下来数据库字符集和校对规则是
(1)如果手动指定字符集和校对规则那么直接使用
(2)如果指定字符集没有指定校对规则,那么校对规则使用默认的.
(3)如果没有指定字符集也没有指定校对规则,则使用服务器字符集和校对规则作为数据库字符集和校对规则


表字符集和校对规则基本跟数据库的字符集校对规则基本一样.
(1)如果没有指定表字符集也没有指定校对规则,则使用数据库字符集和校对规则作为表字符集和校对规则


那么对于客户端和服务器之间的字符集的校对规则设置,MySQL提供三个参数character_set_client、character_set_connection、character_set_results,这三个参数分别代表客户端、连接、返回结果字符集.基本上这三个参数的字符集应该相同才可以正确的写入和读出.一般情况下不会单纯修改这三个参数,可以通过如下命令修改
set names gbk;


这个命令可以同时修改这三个参数,但是在每次连接数据库时都需要设置这个参数.
另外一个办法是在my.cnf设置一下语句
[mysql]
default_character-set=gbk
这样以后服务器启动后,所有连接都会默认使用gbk字符集连接



阅读(5127) | 评论(0) | 转发(0) |
0

上一篇:mysql.sock

下一篇:详解MySQL中的TEXT、BLOB

给主人留下些什么吧!~~