10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 本手册下载 本手册节选

10.13.1字符定义数组

中的每个简单字符集都有一个配置文件sql /分享/数据集目录中。用于命名为MYSYS,文件命名为MYSET. xml.它使用< >地图数组元素列出字符集属性。< >地图元素出现在这些元素中:

  • < ctype >定义每个字符的属性。

  • < >低而且<上>列出小写和大写字符。

  • unicode > <将8位字符值映射为Unicode值。

  • <排序>元素表示比较和排序的字符顺序,每次排序一个元素。二进制排序不需要< >地图元素,因为字符代码本身提供了排序。

中实现的复杂字符集ctype -MYSET.c文件字符串目录中,有相应的数组:ctype_MYSET[]to_lower_MYSET[]等等。并不是每个复杂字符集都有所有的数组。请参见现有的ctype - * . c文件的例子。看到CHARSET_INFO.txt文件字符串目录以获取更多信息。

大多数数组按字符值进行索引,共有256个元素。的< ctype >数组以字符值+ 1为索引,共有257个元素。这是一个用于处理的遗留约定EOF

< ctype >数组元素是位值。每个元素描述字符集中单个字符的属性。中定义的每个属性都与位掩码相关联包括/ m_ctype.h

#define _MY_U 01 /*大写*/ #define _MY_L 02 /*小写*/ #define _MY_NMR 04 /*数字(数字)*/ #define _MY_SPC 010 /*间距字符*/ #define _MY_PNT 020 /*标点符号*/ #define _MY_CTR 040 /*控制字符*/ #define _MY_B 0100 /*空白*/ #define _MY_X 0200 /*十六进制数字*/

< ctype >给定字符的值应该是描述该字符的适用位掩码值的并集。例如,“一个”是大写字符(_MY_U)以及一个十六进制数字(_MY_X),所以其ctypeValue应该这样定义:

ctype['A'+1] = _MY_U | _MY_X = 01 | 0200 = 0201

中的位掩码值m_ctype.h是八进制值,但是< ctype >数组中MYSET. xml应该写成十六进制值。

< >低而且<上>数组保存对应于字符集每个成员的小写和大写字符。例如:

小写['A']应该包含'A'大写['A']应该包含'A'

每一个<排序>数组指示为了进行比较和排序,字符应该如何排序。MySQL根据这些信息的值对字符进行排序。在某些情况下,这与<上>数组,这意味着排序是不区分大小写的。有关更复杂的排序规则(对于复杂字符集),请参阅中关于字符串排序的讨论第10.13.2节,“对复杂字符集的字符串排序支持”