MYSQL 中,Character Sets 和 Collations的区别

1 篇文章 0 订阅

9.1.1. Character Sets and Collations in General


character set(字符集)是一组符号和编码。collation(连线校对)是一套比较字符的字符集的规则。用一个假设的字符集例子,让我们明确他们的区别。


假设我们有一个字母表,有四个字母: “ A ”, “ B ”, “ a ” , “ b ”。我们用数字给每个字母编码: “A” = 0 ,“ B” = 1 ,“a” = 2 ,“b” = 3 。字母“ A ”是一个符号,数字0“ A ” 的编码 ,这四个字母及这四个编码就是一个字符集。


假如我们想要比较两个字符串“A”和“B”的值。那么最简单的方法就是查看他们的编码:“A”的编码为0,“B”的编码为1,因为0小于1,所以我们说“A”小于“B”。这是在字符集的比较(连线校对)的应用。比较(连线校对)是一套规则(这个例子里只有一个规则,那就是比较编码)。我们称这种最简单的校对为二进制校对(binary collation)。


但如果我想说大小写是相等的呢?那我们应该这样做:(1)把小写的“a”和“b”等同于“A”和“B”,(2)然后比较它们的编码。我们称这是大小写不敏感校对(case-insensitive collation)。这比二进制校对稍麻烦一些。


在现实生活中,多数的字符集有许多的字符:。上千种西方书写字符构成的字符系统中,除了特殊的符号和标点符号,还有多种字母表。这不仅仅是“A”和“B”,而是整个字母表。同时在现实生活中,多数的校对有很多规则,不仅仅是是否对大小写敏感。还要区分不同的口音(例如德语的“Ö”,要关联到相同的口音。在两种德语校对规则中,其中一种就认为在多字符映射中“Ö” = “OE” )。


MySQL可以让你做这些事情:
用多种的字符集(character sets)存储字符串
用多种的校对(collations)规则比较字符串
对同一个服务器,同一个数据库,甚至是同一个表中的一个字符串,可以用不同的文字校对或字符集。
在任一个水平上,允许特定的字符集和校对设置。
在这些方面, MySQL是远远超过其他大多数数据库管理系统。然而,为了有效地使用这些功能,您需要知道什么字符集和校对的情况下,如何更改默认值,以及它们如何影响字符串的操作和函数。



出自:http://dev.mysql.com/doc/refman/5.0/en/charset-general.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值