暂无 |

1 Character Set与Collat​​ion

任何资讯技术在处理资料的时候,如果只是单纯的数值和运算,那就不会有太复杂的问题;如果处理的资料是文字的话,就会面临世界上各种不同语言的问题。以资料库来说,它必须正确的储存各种不同语言的文字,也就是一个资料库中,有可能同时储存繁体和简体中文、法文等不同语言的文字。

电脑在处理文字资料大多是使用一个「编码」来表示某一个字,对MySQL资料库来说,为了要处理不同语言的文字,它使用一套编码来处理一种语言的文字,称为「字元集、character set」。以英文字母来说,每一个字母都有一个编码,例如A=65、B=66、C=67。

MySQL可以依照你的需要为资料库设定不同的字元集:

mysql_07_snap_01

Collat​​ion指的是在一个字元集中,所有字元的大小排序规则。以英文字母来说,我们会依照A到Z的顺序当成大小的顺序,小写的字母也是一样的。这样的大小顺序是依照编码的大小来决定的,MySQL把它称为「binary collat​​ion」。

可是在真实的世界中,大小顺序却不是这么单纯,有时候你会把大小写的英文字母当成是一样的,例如大写的A和小写的a。在这种情况下,大写和小写的字母会被当成是一样的大小,然后再依照编码来决定,例如大写A的编码比小写a的编码小。MySQL把这样的方式称为「case-insensitive collat​​ion」。

mysql_07_snap_02

在决定大小顺序的时候,如果只有考虑字母大小写因素的话,那还不算是太复杂的。如果再考虑各种不同语言特性的话,在决定大小顺序的时候就会变得很复杂。以繁体中文来说,它是没有区分大小写的,而且一个中文字会包含一个以上的位元组,其它的语言也都会有类似的情况。

1.1 Character Set

MySQL资料库把各种不同字元集的编码资料纪录在系统资料库中,你可以使用下列的指令查询MySQL资料库支援的字元集资讯:

SHOW CHARACTER SET

执行上列的查询指令后可以得到下列的结果:

mysql_07_snap_03

1.2 COLLATION

MySQL除了支援各种不同的字元集,让资料库可以储存不同语言的文字外,每一种字元集都可以依照实际需要,搭配不同的Collat​​ion设定。你可以使用下列的指令查询MySQL支援的Collat​​ion资讯:

SHOW COLLATION

执行上列的查询指令后可以得到下列的结果:

mysql_07_snap_24

你也可以使用类似「WHERE」子句中的条件设定,查询某一种字元集支援的Collat​​ion资讯:

mysql_07_snap_25

你可以从Collat​​ion名称分辨出排序的准则:

mysql_07_snap_06

0

java教程
php教程
php+mysql教程
ThinkPHP教程
MySQL
C语言
css
javascript
Django教程

发表评论

    评价:
    验证码: 点击我更换图片
    最新评论