字符集与字符序

字符集(Character Set)是字符的编码规则,字符序(Collation)是字符的排序规则,本章主要对 openGauss B模式(即sql_compatibility = 'B')下的字符集、字符序进行介绍,以下介绍的字符集、字符序规则和语法仅在B模式下支持。

字符集和字符序存在以下说明:

  • 每一个字符集都有一个或多个字符序,其中一个字符序为默认字符序。
  • 每一个字符序仅有一个相关联的字符集。
  • 相同数据使用不同的字符序排序结果可能会不同。
  • 在openGauss中,utf8mb4与utf8为同一字符集。
  • 建议表字段和server_encoding选择相同字符集,避免转码带来的性能损耗。

openGauss数据库支持以下功能:

  • 支持多种字符集存储字符串。
  • 支持使用字符序比较字符串。
  • 支持数据库级、模式级、表级、字段级字符集和字符序。
  • 支持在同服务器、同数据库、同一个表、同一条SQL语句中混合使用不同字符集和字符序的字符串。

支持的字符集

openGauss 目前所支持的字符集可以参考 CREATE DATABASE 章节中 ENCODING 部分介绍。

其中,部分字符集在B模式下存在默认字符序,如下:

字符集说明默认字符序
utf8针对Unicode的可变长度字符编码,字符编码长度1~4字节utf8_general_ci
utf8mb4同utf8utf8mb4_general_ci
gb18030国标汉字编码字符集gb18030_chinese_ci
gb18030-2022国标汉字编码字符集gb18030_chinese_ci
gbk国标汉字编码扩展字符集gbk_chinese_ci
binary二进制伪字符集binary

说明:

  • 当前模式级、表级和字段级语法仅支持指定为上述字符集。

支持的字符序

openGauss所有支持的字符序详见PG_COLLATION系统表。

还有部分排序规则仅支持在B模式下使用,如下:

字符序所属字符集说明空白填充
binarybinary使用二进制排序规则不支持
utf8mb4_general_ciutf8mb4使用通用排序规则支持
utf8mb4_unicode_ciutf8mb4使用基于 Unicode Collation Algorithm (UCA) 的排序规则支持
utf8mb4_binutf8mb4使用二进制排序规则支持
utf8_general_ciutf8同utf8mb4_general_ci支持
utf8_unicode_ciutf8同utf8mb4_unicode_ci支持
utf8_binutf8同utf8_bin支持
gbk_chinese_cigbk使用中文语言(拼音)排序规则。支持
gbk_bingbk使用二进制排序规则。支持
gb18030_chinese_cigb18030使用中文语言(拼音)排序规则。支持
gb18030_bingb18030使用二进制排序规则。支持

说明:

  • 字符序名称以与它们相关联的字符集的名称开头,通常后跟一个或多个表示其他字符序特征的后缀,例如: _bin表示二进制排序规则, _ci表示不区分大小写。
  • 当字符序支持空白填充属性,则字符串比较时忽略末尾空格,例如 : 'A ' = 'A'。

详细说明

意见反馈
编组 3备份
    openGauss 2024-04-25 00:49:19
    取消