课件瑞客论坛第九课mysql字符集_第1页
课件瑞客论坛第九课mysql字符集_第2页
课件瑞客论坛第九课mysql字符集_第3页
课件瑞客论坛第九课mysql字符集_第4页
课件瑞客论坛第九课mysql字符集_第5页
已阅读5页,还剩73页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、字符集字符集和排序规则简介064/提供了多种字符集和排序规则选择,其中字符集设置和数据以及客户端与064/实例的交互相关,排序规则和字符串的对比规则相关字符集的设置可以在064/实例、数据库、表、列四个级别064/设置字符集支持在,QQR% 0,6$0 0HPRU三个引擎查看当前064/支持的字符集的方式有两种,一种是通过查看 LQIRUPDWLRQBVFKHPD FKDUDFWHUBVHW系统表,一种是通过命令VKRZ FKDUDFWHU VHW查看01字符集和排序规则简介PVTO! 6+2: &+$5$&7(5 6(7 _ &KDUVHW _ HVFULSWLRQ _ HIDXOW FRO

2、ODWLRQ _ 0DOHQ _ _ ELJ _ %LJ 7UDGLWLRQDO &KLQHVH _ ELJ BFKLQHVHBFL _ _ _ ODWLQ _ FS :HVW (XURSHDQ _ ODWLQ BVZHGLVKBFL _ _ ODWLQ _ ,62 &HQWUDO (XURSHDQ _ ODWLQ BJHQHUDOBFL _ _ _ XWI _ 87) 8QLFRGH _ XWI BJHQHUDOBFL _ _ XFV _ 8&6 8QLFRGH _ XFV BJHQHUDOBFL _ _ _ XWI PE _ 87) 8QLFRGH _ XWI PE BJHQHUDOBFL

3、 _ _ _ ELQDU _ %LQDU SVHXGR FKDUVHW _ ELQDU _ _ 01字符集和排序规则简介PVTO! 6+2: &+$5$&7(5 6(7 /,.( ODWLQ _ &KDUVHW _ HVFULSWLRQ _ HIDXOW FROODWLRQ _ 0DOHQ_ _ ODWLQ _ FS :HVW (XURSHDQ _ ODWLQ BVZHGLVKBFL _ _ ODWLQ _ ,62 &HQWUDO (XURSHDQ _ ODWLQ BJHQHUDOBFL _ _ ODWLQ _ ,62 7XUNLVK _ ODWLQ BWXUNLVKBFL _ _ ODWLQ

4、 _ ,62 %DOWLF _ ODWLQ BJHQHUDOBFL _ _01字符集和排序规则简介每个指定的字符集都会有一个或多个支持的排序规则,可以通过两种方式查看,一种是查看LQIRUPDWLRQBVFKHPD FROODWLRQV表,另一种是通过VKRZ FROODWLRQ命令查看不同的字符集不可能有相同的排序规则每个字符集都会有一个默认的排序规则PVTO! 6+2: &2/$7,21 :+(5( &KDUVHW ODWLQ _ &ROODWLRQ _ &KDUVHW _ ,G _ HIDXOW _ &RPSLOHG _ 6RUWOHQ_ _ ODWLQ BJHUPDQ BFL _ OD

5、WLQ _ _ HV _ _ ODWLQ BVZHGLVKBFL _ ODWLQ _ _ HV_ HV _ _ ODWLQ BGDQLVKBFL _ ODWLQ _ _ HV _ _ ODWLQ BJHUPDQ BFL _ ODWLQ _ _ HV _ _ ODWLQ BELQ_ ODWLQ _ _ HV _ _ ODWLQ BJHQHUDOBFL _ ODWLQ _ _ HV _ _ HV _ _ PVTOGSRUW FKDUDFWHUBVHWBVHUYHU XWI URRW#LS XVU ORFDO PVTO ELQ HWF LQLW G PVTO VHUYHU UHVWDUW RN 5H

6、VWDUWLQJ PVTO VHUYHU YLD VVWHPFWO PVTO VHUYHU VHUYLFH PVTO! FUHDWH GDWDEDVH FRXUVH 4XHU 2. URZ DIIHFWHG VHF PVTO! VKRZ FUHDWH GDWDEDVH FRXUVH _ DWDEDVH _ &UHDWH DWDEDVH_ _ FRXUVH _ &5($7( $7$%$6( CFRXUVH C ()$8/7 &+$5$&7(5 6(7 XWI _01实例级别字符集和排序规则HIDXOW FKDUDFWHU VHW是064/老版本中的FKDUDFWHUBVHWBVHUYHU,在新版

7、本中该参数改成了FKDUDFWHUBVHWBVHUYHU,如果在 版本中继续使用老的参数会导致数据库无法启动 7 = (5525 XQNQRZQ YDULDEOH GHIDXOW FKDUDFWHU VHW XWI 7 = (5525 $ERUWLQJ01数据库级别字符集和排序规则实例上的每个数据库都有一个字符集和排序规则,FUHDWH GDWDEDVH和DOWHU GDWDEDVH语句来指定和修改可以通过数据库的属性值会存放在数据库所在文件夹下的GE RSW文件里01数据库级别字符集和排序规则通过FUHDWH DOWHU GDWDEDVH语句里指定字符集和排序规则,可以创建不同于实例级别的字

8、符集和排序规则,而且每个数据库都可以创建成不一样&5($7( $7$%$6( db_name &+$5$&7(5 6(7 ODWLQ &2/$7( ODWLQ BVZHGLVKBFL 同样,当仅指定了字符集而没有指定排序规则时,则会使用该字符集的默认排序规则当仅指定了排序规则而没有字符集时,则在该排序规则名称上含有的字符被使用当数据库创建时没有指定这两项,则使用实例级别的字符集和排序规则01数据库级别字符集和排序规则DOWHU GDWDEDVH语句修改的字符集仅对数据库中后续创建的表产生作用,不会修改已经创建表的字符集 PVTO! VKRZ FUHDWH WDEOH WHPS _ 7DEOH

9、_ &UHDWH 7DEOH_ _ WHPS _ &5($7( 7$%/( CWHPS C CLGC LQW ()$8/7 18/ CQDPHC YDUFKDU ()$8/7 18/ (1*,1( ,QQR% ()$8/7 &+$56(7 ODWLQ _PVTO! DOWHU GDWDEDVH FRXUVH FKDUDFWHU VHW XWI PVTO! VKRZ FUHDWH WDEOH WHPS _ 7DEOH _ &UHDWH 7DEOH_ _ WHPS _ &5($7( 7$%/( CWHPS C CLGC LQW ()$8/7 18/ CQDPHC YDUFKDU ()$8/7 18

10、/ (1*,1( ,QQR% ()$8/7 &+$56(7 ODWLQ _PVTO! FUHDWH WDEOH WHPS LG LQW QDPH YDUFKDU PVTO! VKRZ FUHDWH WDEOH WHPS _ 7DEOH _ &UHDWH 7DEOH_ _ WHPS _ &5($7( 7$%/( CWHPS C CLGC LQW ()$8/7 18/ CQDPHC YDUFKDU ()$8/7 18/ (1*,1( ,QQR% ()$8/7 &+$56(7 XWI _01表级别字符集和排序规则每个表都有自己的字符集和排序规则,可以通过FUHDWH WDEOH和DOWHU WDEO

11、H语句指定或修改表的字符集和排序规则&5($7( 7$%/( W &+$5$&7(5 6(7 ODWLQ &2/$7(ODWLQ BGDQLVKBFL 当创建和修改表时没有指定排序规则时会使用字符集默认的排序规则当创建和修改表时没有指定字符集,则使用排序规则对应的字符集当两个属性都没有指定时,会使用数据库级别的字符集和排序规则01表级别字符集和排序规则PVTO! FUHDWH WDEOH WHPS LG LQW QDPH YDUFKDU FKDUDFWHU VHW XWI FROODWH XWI BJHQHUDOBFL PVTO! VKRZ FUHDWH GDWDEDVH FRXUVH _ D

12、WDEDVH _ &UHDWH DWDEDVH _ FRXUVH_ &5($7( $7$%$6( CFRXUVHC ()$8/7 &+$5$&7(5 6(7 ODWLQ _ URZ LQ VHW VHF PVTO! FUHDWH WDEOH WHPS LG LQW QDPH YDUFKDU 4XHU 2. URZV DIIHFWHG VHF PVTO! VKRZ FUHDWH WDEOH WHPS _ 7DEOH _ &UHDWH 7DEOH_ _ WHPS _ &5($7( 7$%/( CWHPS C CLGC LQW ()$8/7 18/ CQDPHC YDUFKDU ()$8/7 18/

13、 (1*,1( ,QQR% ()$8/7 &+$56(7 ODWLQ _01表级别字符集和排序规则DOWHU WDEOH表的字符集不会改变已经存在的字段的字符集和字段里的数据 PVTO! VKRZ FUHDWH WDEOH WHPS _ 7DEOH _ &UHDWH 7DEOH_ _ WHPS _ &5($7( 7$%/( CWHPS C CLGC LQW ()$8/7 18/ CQDPHC YDUFKDU ()$8/7 18/ (1*,1( ,QQR% ()$8/7 &+$56(7 ODWLQ _PVTO! LQVHUW LQWR WHPS YDOXHV 中国 PVTO! VHOHFW IU

14、RP WHPS _ LG_ QDPH_ _ _ 中国_PVTO! DOWHU WDEOH WHPS FKDUDFWHU VHW XWI PVTO! VHOHFW IURP WHPS _ LG_ QDPH_ _ _ 中国_PVTO! VKRZ FUHDWH WDEOH WHPS _ 7DEOH _ &UHDWH 7DEOH_ _ WHPS _ &5($7( 7$%/( CWHPS C CLGC LQW ()$8/7 18/ CQDPHC YDUFKDU &+$5$&7(5 6(7 ODWLQ ()$8/7 18/ (1*,1( ,QQR% ()$8/7 &+$56(7 XWI _01列级别字符集

15、和排序规则每个字符串字段 FKDU YDUFKDU WHW 都有自己的字符集和排序规则,可以通过FUHDWH WDEOH和DOWHU WDEOH指定和修改字段的字符集和排序规则&5($7( 7$%/( W FRO 9$5&+$5 &+$5$&7(5 6(7 ODWLQ &2/$7( ODWLQ BJHUPDQ BFL $/7(5 7$%/( W 02,)Bcharset_name string &2/$7( collation_name6(/(&7 DEF 6(/(&7 BODWLQ DEF 6(/(&7 BELQDU DEF 6(/(&7 BXWI DEF &2/$7( XWI BGDQLV

16、KBFL 01字符串的字符集和排序规则PVTO! VHOHFW FDVH ZKHQ D $ WKHQ HOVH HQG _ FDVH ZKHQ D $ WKHQ HOVH HQG _ _ _PVTO! VHW FROODWLRQBFRQQHFWLRQ ODWLQ BJHQHUDOBFV 4XHU 2. URZV DIIHFWHG VHF PVTO! VHOHFW FDVH ZKHQ D $ WKHQ HOVH HQG _ FDVH ZKHQ D $ WKHQ HOVH HQG _ _ _PVTO! VHOHFW FDVH ZKHQ D BODWLQ $ FROODWH ODWLQ BJHQHU

17、DOBFV WKHQ HOVH HQG _ FDVH ZKHQ D BODWLQ $ FROODWH ODWLQ BJHQHUDOBFV WKHQ HOVH HQG _ _ _01字符集和排序规则当FKDUVHW和FROODWLRQ都指定时,使用这两者作为字符串的字符集和排序规则当仅指定FKDUVHW时,则排序规则使用该字符集对应的默认排序规则当仅指定排序规则时,则使用FKDUDFWHUBVHWBFRQQHFWLRQ参数对应的字符集,且必须保证排序规则是字符集允许的当两者都没有指定时,则使用FKDUDFWHUBVHWBFRQQHFWLRQ和FROODWLRQBFRQQHFWLRQ两个参数指定的

18、字符集和排序规则比如6(/(&7 BXWI 0OOHU 会使用XWI 字符集和默认的 XWI BJHQHUDOBFL排序规则比如6(/(&7 0OOHU &2/$7( XWI BJHQHUDOBFL 会使用系统连接的字符集,但如果字符集不是XWI 就会报错01字符集和排序规则PVTO! VHW QDPHV ODWLQ 4XHU 2. URZV DIIHFWHG VHF PVTO! 6(/(&7 0OOHU &2/$7( XWI BJHQHUDOBFL (5525 &2/$7,21 XWI BJHQHUDOBFL LV QRW YDOLG IRU &+$5$&7(5 6(7 ODWLQ 01国家

19、字符集标准64/中会有两种预定义的字符集数据类型,分别是QFKDU和 QYDUFKDU。 在064/中这种预定义的字符集就是87) ,所以以下定义的最终结果是相同的:&+$5 &+$5$&7(5 6(7 XWI 1$7,21$/ &+$5$&7(5 1&+$5 以下定义的最终结果也是相同:9$5&+$5 &+$5$&7(5 6(7 XWI 1$7,21$/ 9$5&+$5 19$5&+$5 1&+$5 9$5&+$5 1$7,21$/ &+$5$&7(5 9$5,1* 1$7,21$/ &+$5 9$5&2/$7( collation_name 表明后续的语句都以该字符集格式传送给服务端,而执

20、行结果也以此字符集格式返回。01连接级字符集和排序规则比如一个VHW QDPHV语句相当于执行了以下三行语句:6(7 FKDUDFWHUBVHWBFOLHQW charset_name 6(7 FKDUDFWHUBVHWBUHVXOWV charset_name 6(7 FKDUDFWHUBVHWBFRQQHFWLRQ charset_nam或者执行6(7 &+$5$&7(5 6(7 charset_name 命令,此命令和 VHW QDPHV非常类似,唯一不同是将FRQQHFWLRQ的字符集设置为当前数据库的字符集,所以相当于执行以下三行语句:6(7 FKDUDFWHUBVHWBFOLHQW

21、 charset_name 6(7 FKDUDFWHUBVHWBUHVXOWV charset_name 6(7 FKDUDFWHUBVHWBFRQQHFWLRQ #FKDUDFWHUBVHWBGDWDEDVH 01连接级字符集和排序规则PVTO! VHW QDPHV ODWLQ FROODWH ODWLQ BJHQHUDOBFV 4XHU 2. URZV DIIHFWHG VHF PVTO! VKRZ YDULDEOHV OLNH FROODWLRQBFRQQHFWLRQ _ 9DULDEOHBQDPH_ 9DOXH_ _ FROODWLRQBFRQQHFWLRQ _ ODWLQ BJHQH

22、UDOBFV _ URZV LQ VHW VHF PVTO! VHOHFW FDVH ZKHQ D $ WKHQ HOVH HQG _ FDVH ZKHQ D $ WKHQ HOVH HQG _ _ _01应用程序配置字符集和排序规则当应用程序使用064/默认的字符集和排序规则时,则应用程序端不需要特别的设置,而当不是使用默认属性时则需要特别设置。比如可以灵活的的为每一个数据库设置不同的字符集和排序规则,对应用程序来说就可以通过VHW QDPHV命令与所操作的数据库保持可以通过设置 FKDUDFWHUBVHWBVHUYHU和 一致;在服务器端FROODWLRQBVHUYHU两个参数来指定实例的

23、默认字符集和排序规则,并将此作为每个数据库和表的默认字符集和排序规则,比如:PVTOGFKDUDFWHU VHW VHUYHU XWI FROODWLRQ VHUYHU XWI BJHQHUDOBFL而在应用程序端,也需要通过VHW QDPHV命令保证每个数据库数据库保持一致和01应用程序配置字符集和排序规则PVTO! VKRZ YDULDEOHV OLNH FKDUDFWHU _ 9DULDEOHBQDPH_ 9DOXH_ _ FKDUDFWHUBVHWBFOLHQW_ XWI _ FKDUDFWHUBVHWBFRQQHFWLRQ _ XWI _ FKDUDFWHUBVHWBGDWDEDVH

24、_ XWI _ FKDUDFWHUBVHWBILOHVVWHP _ ELQDU_ FKDUDFWHUBVHWBUHVXOWV_ FKDUDFWHUBVHWBVHUYHU_ FKDUDFWHUBVHWBVVWHP_ FKDUDFWHUBVHWVBGLU_ XWI _ XWI _ XWI _ XVU ORFDO PVTO VKDUH FKDUVHWV _ URZV LQ VHW VHF PVTO! VHW QDPHV ODWLQ 4XHU 2. URZV DIIHFWHG VHF PVTO! VKRZ YDULDEOHV OLNH FKDUDFWHU _ 9DULDEOHBQDPH_ 9DOXH_

25、 _ FKDUDFWHUBVHWBFOLHQW_ ODWLQ _ FKDUDFWHUBVHWBFRQQHFWLRQ _ ODWLQ _ FKDUDFWHUBVHWBGDWDEDVH_ XWI _ FKDUDFWHUBVHWBILOHVVWHP _ ELQDU_ FKDUDFWHUBVHWBUHVXOWV_ FKDUDFWHUBVHWBVHUYHU_ FKDUDFWHUBVHWBVVWHP_ FKDUDFWHUBVHWVBGLU_ ODWLQ _ XWI _ XWI _ XVU ORFDO PVTO VKDUH FKDUVHWV _ 01应用程序配置字符集和排序规则也可以通过参数 LQLWBFR

26、QQHFW 6(7 1$0(6 XWI 来让每个客户端连接都自动设置字符集,但缺点是对拥有VXSHU权限的用户不生效LQLWBFRQQHFW表示服务器为每个连接的客户端执行的字符串。字符串由一个或多个64/语句组成。要想指定多个语句,用分号间隔开6(7 */2%$/ LQLWBFRQQHFW 6(7 $872&200,7 VHW QDPHVXWI PVTOGLQLWBFRQQHFW 6(7 $872&200,7 VHW QDPHV XWI 01应用程序配置字符集和排序规则也可以通过参数 LQLWBFRQQHFW 6(7 1$0(6 XWI 来让每个客户端连接都自动设置字符集,但缺点是对拥有VX

27、SHU权限的用户不生效LQLWBFRQQHFW表示服务器为每个连接的客户端执行的字符串。字符串由一个或多个64/语句组成。要想指定多个语句,用分号间隔开6(7 */2%$/ LQLWBFRQQHFW 6(7 $872&200,7 VHW QDPHVXWI PVTOGLQLWBFRQQHFW 6(7 $872&200,7 VHW QDPHV ODWLQ 01应用程序配置字符集和排序规则PVTO! JUDQW VHOHFW RQ FRXUVH WR FGT# ORFDOKRVW LGHQWLILHG E FGT URRW#LS XVU ORFDO PVTO ELQ PVTO X FGT SPVTO

28、! VKRZ YDULDEOHV OLNH FKDUDFWHU _ 9DULDEOHBQDPH_ 9DOXH_ _ FKDUDFWHUBVHWBFOLHQW_ ODWLQ _ FKDUDFWHUBVHWBFRQQHFWLRQ _ ODWLQ _ FKDUDFWHUBVHWBGDWDEDVH_ XWI _ FKDUDFWHUBVHWBILOHVVWHP _ ELQDU_ FKDUDFWHUBVHWBUHVXOWV_ FKDUDFWHUBVHWBVHUYHU_ FKDUDFWHUBVHWBVVWHP_ FKDUDFWHUBVHWVBGLU_ ODWLQ _ XWI _ XWI _ XVU ORFD

29、O PVTO VKDUH FKDUVHWV _ URZV LQ VHW VHF PVTO! VKRZ YDULDEOHV OLNH DXWRFRPPLW _ 9DULDEOHBQDPH _ 9DOXH _ _ DXWRFRPPLW_ 2)_01排序规则在64/中的使用在64/语句中指定排序规则可以覆盖之前定义的默认排序规则和RUGHU E语句使用6(/(&7 N )520 W 25(5 % N &2/$7( ODWLQ BJHUPDQ BFL 和DV语句使用6(/(&7 N &2/$7( ODWLQ BJHUPDQ BFL $6 N )520 W 25(5% N 和JURXS E语句使用6(/

30、(&7 N )520 W *5283 % N &2/$7( ODWLQ BJHUPDQ BFL 和聚合函数使用6(/(&7 0$; N &2/$7( ODWLQ BJHUPDQ BFL )520 W 和GLVWLQFW一起使用6(/(&7 ,67,1&7 N &2/$7( ODWLQ BJHUPDQ BFL )520 W 01排序规则在64/中的使用PVTO! VHOHFW IURP WHPS _ QDPH _ QDPH _ _ D_ $_ E_ %_ D_ $_ E_ %_PVTO! VHOHFW FRXQW GLVWLQFW QDPH FRXQW GLVWLQFW QDPH FROODWH

31、 ODWLQ BJHQHUDOBFL IURP WHPS _ FRXQW GLVWLQFW QDPH _ FRXQW GLVWLQFW QDPH FROODWH ODWLQ BJHQHUDOBFL _ _ _ _01排序规则在64/中的使用在ZKHUH条件中使用6(/(&7 )520 W :+(5( BODWLQ 0OOHU &2/$7(ODWLQ BJHUPDQ BFL N 6(/(&7 )520 W :+(5( N /,.( BODWLQ 0OOHU &2/$7(ODWLQ BJHUPDQ BFL 在KDYLQJ中使用6(/(&7 N )520 W *5283 % N +$9,1* N B

32、ODWLQ 0OOHU &2/$7( ODWLQ BJHUPDQ BFL 01排序规则在64/中的使用在大部分的语句中,使用何种排序规则是明确的,比如如下几个语句就是使用;列上的排序规则:6(/(&7 )520 7 25(5 % 6(/(&7 )520 7 :+(5( 6(/(&7 ,67,1&7 )520 7 但也有复杂的情况,比如当列和字符串都有各自的排序规则时:6(/(&7 )520 7 :+(5( &RQFDW ; 01排序规则在64/中的使用首先计算每种情况的排序规则权重: 当有显示的写明优先级的,则权重为 当两个有不同排序规则的字符串连接在一起的,则权重为 字段和本地参数的排序规则

33、,权重为 由部分字符串函数返回的系统常量所带的排序规则,权重为 字符串自带的排序规则,权重为 在最终选择使用哪种排序规则上,规则为: 优先使用权重最低的 如果两者拥有相同的优先级,则 )如果两者都是8QLFRGH,或者都不是8QLFRGH,则返回错误 )如果一边是8QLFRGH而另一边不是,则将不是8QLFRGH的一边转化成8QLFRGH字符集,比如:6(/(&7 &21&$7 XWI BFROXPQ ODWLQ BFROXPQ )520 W ODWLQ 字符集的列会自动转化为XWI 的字符集,再执行字符串连接 )当两边都是相同字符集,且一边是BELQ而另一边是BFL BFV的排序规则时,则使

34、用 BELQ的排序规则01排序规则在64/中的使用通过命令FRHUFLELOLW可以查看权重,比如:PVTO! 6(/(&7 &2(5&,%,/,7 $ &2/$7( ODWLQ BVZHGLVKBFL ! PVTO! 6(/(&7 &2(5&,%,/,7 9(56,21 ! PVTO! 6(/(&7 &2(5&,%,/,7 $ ! PVTO! 6(/(&7 &2(5&,%,/,7 ! 01&RPSDULVRQ&ROODWLRQ 8VHGFROXPQ $ 8VH FROODWLRQ RI FROXPQ FROXPQ $ &2/$7( 8VH FROODWLRQ RI $ &2/$7( FROX

35、PQ &2/$7( $ &2/$7( (UURU排序规则在64/中的使用PVTO! VKRZ FUHDWH WDEOH WHPS _ 7DEOH _ &UHDWH 7DEOH_ _ WHPS _ &5($7( 7$%/( CWHPSC CQDPHC YDUFKDU &+$5$&7(5 6(7 ODWLQ &2/$7( ODWLQ BJHQHUDOBFL ()$8/7 18/ CQDPH C YDUFKDU &+$5$&7(5 6(7 ODWLQ &2/$7( ODWLQ BJHQHUDOBFV ()$8/7 18/ (1*,1( ,QQR% ()$8/7 &+$56(7 ODWLQ _PVTO

36、! VHOHFW IURP WHPS ZKHUH QDPH $ _ QDPH _ QDPH _ _ D_ $_ D_ $_PVTO! VHOHFW IURP WHPS ZKHUH QDPH $ FROODWH ODWLQ BJHQHUDOBFV _ QDPH _ QDPH _ _ $_ $_PVTO! VHOHFW IURP WHPS ZKHUH QDPH FROODWH ODWLQ BJHQHUDOBFL $ FROODWH ODWLQ BJHQHUDOBFV (5525 + ,OOHJDO PL RI FROODWLRQV ODWLQ BJHQHUDOBFL (;3/,&,7 DQG OD

37、WLQ BJHQHUDOBFV (;3/,&,7 IRU RSHUDWLRQ 01排序规则使用举例德语中的元音情况比如表7的;列有这样的值0XIIOHU0OOHU0; 6VWHPV064/当执行如下语句时:6(/(&7 ; )520 7 25(5 % ; &2/$7(collation_name 执行结果是为:01ODWLQ BVZHGLVKBFLODWLQ BJHUPDQ BFLODWLQ BJHUPDQ BFL0XIIOHU0XIIOHU0OOHU0; 6VWHPV0OOHU0XIIOHU0OOHU0; 6VWHPV0; 6VWHPV064/064/064/排序规则使用举例不能比较两个属于

38、不同校对的不同字符值。&5($7( 7$%/( CWHPSC CQDPHC YDUFKDU &+$5$&7(5 6(7 ODWLQ &2/$7( ODWLQ BJHQHUDOBFL ()$8/718/ CQDPH C YDUFKDU &+$5$&7(5 6(7 ODWLQ &2/$7( ODWLQ BJHQHUDOBFV ()$8/718/ (1*,1( ,QQR% ()$8/7 &+$56(7 ODWLQ PVTO! VHOHFW IURP WHPS _ QDPH _ QDPH _ _ D_ $_ E_ D_ $_ E_ %_ %_ URZV LQ VHW VHF PVTO! VHOHFW

39、IURP WHPS ZKHUH QDPH QDPH (5525 + ,OOHJDO PL RI FROODWLRQV ODWLQ BJHQHUDOBFL ,03/,&,7 DQG ODWLQ BJHQHUDOBFV ,03/,&,7 IRU RSHUDWLRQ 01排序规则使用举例PVTO! VHOHFW BXWI 语言 /DQJXDJH 言語 _ 语言 /DQJXDJH 言語 _ 语言 /DQJXDJH 言語 _PVTO! VHOHFW BODWLQ 语言 /DQJXDJH 言語 _ q q /DQJXDJH qq ff _ q q /DQJXDJH qq ff _018QLFRGH字符集8

40、QLFRGH(8QLYHUVDO &RGH)是一种在计算机上使用的字符编码。8QLFRGH 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了并且唯一的二进制编码,以满足跨语言、跨进行文本转换、处理的要求。8QLFRGH存在不同的编码方案,包括8WI ,8WI 和8WI 。8WI表示8QLFRGH 7UDQVIRUPDWLRQ )RUPDW。其中:&KDUVHW:字符集名字。 HVFULSWLRQ:对每个字符集的简短描述。 HIDXOW FROODWLRQ:每个字符集的默认校对。 0DOHQ:每个字符集所保留的最大字节数。018QLFRGH字符集064/支持的8QLFR

41、GH字符集包括以下几种:%03 %03 %DVLF 0XOWLOLQJXDO 3ODQH :基本多语言范围如果将%03之外的扩展字符转换成XWI 等仅支持%03的字符集时,不识别的字符会转化成?号除87) 外,客户端字符集不支持设置为其他的8QLFRGH字符集, 所以VHW QDPHV和VHW FKDUDFWHU VHW命令在8QLFRGH要求下仅支持87) 01&KDUDFWHU 6HW6XSSRUWHG &KDUDFWHUV5HTXLUHG 6WRUDJH 3HU &KDUDFWHUXWI %03 RQO RU EWHVXFV %03 RQO EWHVXWI PE %03 DQG VXSS

42、OHPHQWDU RU EWHVXWI %03 DQG VXSSOHPHQWDU RU EWHVXWI OH%03 DQG VXSSOHPHQWDU RU EWHVXWI %03 DQG VXSSOHPHQWDU EWHV8QLFRGH字符集87) 字符集87) 8QLFRGH 7UDQVIRUPDWLRQ )RUPDW ZLWK ELW XQLWV 是一种存放8QLFRGH数据的编码规则。 基础拉丁字母,数字,标点符号会占用一个字节 扩展的拉丁字符,希腊语,语,语等会占用两个字节 韩语,中文,日语字符会占用 个或 个字节在064/中,87) 字符集不支持扩展字符,且仅占用最多 个字节018Q

43、LFRGH字符集&5($7( 7$%/( CWHPS C CQDPHC YDUFKDU ()$8/7 18/ (1*,1( ,QQR% ()$8/7 &+$56(7 XWI PVTO! LQVHUW LQWR WHPS YDOXHV DE 中国 D中 中D PVTO! VHOHFW OHQJWK QDPH FKDUBOHQJWK QDPH IURP WHPS _ OHQJWK QDPH _ FKDUBOHQJWK QDPH _ _ _ _ _ _ _ _ _ _ _ _018QLFRGH字符集大多数的8QLFRGH字符集都会一个一般意义上的排序规则,比如以BJHQHUDO结尾命名,以BELQ命

44、名的二进制排序规则,当然也有指定特定语言的排序规则比如在&ODVVLFDO /DWLQ的排序规则中, ,和-的对比结果是相等的 而8和9的对比结果也是相等的01/DQJXDJH/DQJXDJH 6SHFLILHU&ODVVLFDO /DWLQURPDQ&URDWLDQFURDWLDQ&HFKFHFKDQLVKGDQLVK(VSHUDQWRHVSHUDQWR(VWRQLDQHVWRQLDQ*HUPDQ SKRQH ERRN RUGHUJHUPDQ +XQJDULDQKXQJDULDQ,FHODQGLFLFHODQGLF/DWYLDQODWYLDQ不同字符集下字符空间消耗01DWD 7SH6WRU

45、DJH 5HTXLUHG&+$5 M M w EWHV M ZKHUH w LV WKH QXPEHU RI EWHV UHTXLUHG IRU WKH PDLPXP OHQJWK FKDUDFWHU LQ WKH FKDUDFWHU VHW %,1$5 M M EWHV M 9$5&+$5 M 9$5%,1$5 M L EWHV LI FROXPQ YDOXHV UHTXLUH a EWHV L EWHV LI YDOXHV PD UHTXLUH PRUH WKDQ EWHV7,1%/2% 7,17(;7L EWHV ZKHUH L %/2% 7(;7L EWHV ZKHUH L 0(,80

46、%/2% 0(,807(;7L EWHV ZKHUH L /21*%/2% /21*7(;7L EWHV ZKHUH L (180 value1 value2 RU EWHV GHSHQGLQJ RQ WKH QXPEHU RI HQXPHUDWLRQ YDOXHV YDOXHV PDLPXP 6(7 value1 value2 RU EWHV GHSHQGLQJ RQ WKH QXPEHU RI VHW PHPEHUV PHPEHUV PDLPXP 不同字符集下字符空间消耗其中0在非二进制字段中代表定义的字符长度数值,/代表真实的字符所占用的字节数当定义YDUFKDU字段时,最大的长度为 个

47、字节,且这个最大长度比如/DWLQ字符集时,每个字节是整行数据共享的限制,当一个字符,而当在多字节字符集比如87) 时,由于每个字符最大要求 个,所以字段的最大创建长度就是 个字符字节的PVTO! FUHDWH WDEOH WHPS QDPH YDUFKDU FKDUVHW XWI (5525 5RZ VLH WRR ODUJH 7KH PDLPXP URZ VLH IRU WKH XVHG WDEOH WSH QRW FRXQWLQJ %/2%V LV 7KLV LQFOXGHV VWRUDJH RYHUKHDG FKHFN WKH PDQXDO PVTOG FKDUDFWHUBVHWBVH

48、UYHU XWI 影响参数:FKDUDFWHUBVHWBVHUYHU 和 FKDUDFWHUBVHWBGDWDEDVH注意:修改后要重启数据库才能生效。FOLHQWGHIDXOW FKDUDFWHU VHW ODWLQ 影响参数:FKDUDFWHUBVHWBFOLHQW,FKDUDFWHUBVHWBFRQQHFWLRQ 和FKDUDFWHUBVHWBUHVXOWV。注意:修改后无需重启数据库。PVTO! VKRZ YDULDEOHV OLNH FKDUDFWHU _ 9DULDEOHBQDPH_ 9DOXH_ _ FKDUDFWHUBVHWBFOLHQW_ ODWLQ _ FKDUDFWHUB

49、VHWBFRQQHFWLRQ _ ODWLQ _ FKDUDFWHUBVHWBGDWDEDVH_ XWI _ FKDUDFWHUBVHWBILOHVVWHP _ ELQDU_ FKDUDFWHUBVHWBUHVXOWV_ ODWLQ _01064/字符集参数在启动参数前指定 PVTOG FKDUDFWHU VHW VHUYHU XWI 影响参数:FKDUDFWHUBVHWBVHUYHU 和 FKDUDFWHUBVHWBGDWDEDVH临时指定PVTO! 6(7 FKDUDFWHUBVHWBFOLHQW XWI PVTO! 6(7 FKDUDFWHUBVHWBFRQQHFWLRQ XWI PVT

50、O! 6(7 FKDUDFWHUBVHWBGDWDEDVH XWI PVTO! 6(7 FKDUDFWHUBVHWBUHVXOWV XWI PVTO! 6(7 FKDUDFWHUBVHWBVHUYHU XWI 其中FKDUDFWHUBVHWBFOLHQW,FKDUDFWHUBVHWBFRQQHFWLRQ 和FKDUDFWHUBVHWBUHVXOWV,可通过一句话指定PVTO! 6(7 1$0(6 XWI 01064/字符集转化D 064/ 6HUYHU收到请求时将请求数据从FKDUDFWHUBVHWBFOLHQW转换为 FKDUDFWHUBVHWBFRQQHFWLRQ;E 进行内部操作前将请求数据从FKDUDFWHUBVHWBFRQQHFWLRQ转换为内部操作字符集,其确定方法如下:使用每个数据字段的&+$5$&7(5 6(7设定值;若上述值不存在,则使用对应数据表的()$8/7 &+$5$&7(5 6(7设定值 064/扩展,非64/标准 ;若上述值不存在,则使用对应数据库的()$8/7 &+$5$&7(5 6(7设定值;若上述值不存在,则使用FKDUDFWHUBVHWBVHUYHU

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论