23.2. 排序规则支持

排序规则功能允许指定数据每个列甚至每个操作的排序顺序和字符分类行为。这减轻了数据库创建后不能更改LC_COLLATE和LC_CTYPE设置的限制。

23.2.1 概念

理论上,每个可排序数据类型的表达式有一个排序规则。(内置排序数据类型有text,varchar和char。)

23.2.2 管理排序规则

排序规则是一个SQL模式对象,它将SQL名称映射到操作系统中安装的库提供的语言环境。

23.2.2.1 标准排序规则

default,C和POSIX排序规则在所有平台通用。

23.2.2.2 预定义排序规则

使用语句SELECT * FROM pg_collation或\dOS+查看当前可用语言支持。

23.2.2.2.1 libc排序规则

使用命令locale -a查看libc提供的默认排序规则。

23.2.2.2.2 ICU排序规则

23.2.2.3 创建新的排序规则对象

可使用命令 CREATE COLLATION创建自定义排序规则。标准和预定义排序规则应存放到pg_catalog模式下。用户自定义的排序规则应在用户模式下创建。

23.2.2.3.1 libc排序规则

CREATE COLLATION german (provider = libc, locale = 'de_DE');

23.2.2.3.2 ICU排序规则

CREATE COLLATION "de-u-co-phonebk-x-icu" (provider = icu, locale =

'de-u-co-phonebk');

CREATE COLLATION "de-u-co-phonebk-x-icu" (provider = icu, locale =

'de@collation=phonebook');

23.2.2.3.3 拷贝排序规则

命令CREATE COLLATION也可用于基于现存排序规则创建新的排序规则。

CREATE COLLATION german FROM "de_DE";

CREATE COLLATION french FROM "fr-x-icu";

23.2.2.4 非确定性排序规则

排序规则应该是确定性的或非确定性的。确定性排序使用确定性比对,即只有字母一样时(包括顺序)才认为两个字符串相等;而非确定性排序规则下,即使有不同的字符也可判定字符串相等。创建非确定性排序规则示例:

CREATE COLLATION ndcoll (provider = icu, locale = 'und',

deterministic = false);

23.2. Collation Support相关推荐

  1. linux内核(4.17.10)配置项详解(x86)

    64-bit kernel--支持64位 General setup--通用设置 Cross-compiler tool prefix--交叉编译工具前缀 Local version-append t ...

  2. mysql dbcollat_Mysql Server 层混杂信息字典表 | 全方位认识 information_schem(四)

    在上一篇<Server层表级别对象字典表 | 全方位认识 information_schema>中,我们详细介绍了information_schema系统库的表级别对象字典表,本期我们将为 ...

  3. mysql一些操作个人备忘(持续更新)

    安装mysql数据库目录 1./usr/local/mysql/bin/mysql_install_db --user=mysql --datadir=/home/mysql/var ##指定安装后的 ...

  4. 云炬Android开发笔记 11主界面-商品分类开发(多布局Section RecyclerView)

    阅读目录 1. 分类页面结构解析和开发 1.1 布局的创建 1.2 布局的逻辑组合 2. 分类左侧列表数据解析与UI呈现 2.1 数据的转换 2.2[完善list列表逻辑] 3.多布局Section列 ...

  5. 云炬Android开发笔记 7登陆注册功能开发

    阅读目录 1.注册UI及验证逻辑实现 1.1 布局 1.2 注册信息的验证和逻辑 2.登录UI及验证逻辑实现 2.1 布局 2.2 登录的逻辑框架 3.服务器数据简单介绍 3.1 服务器的数据 3.2 ...

  6. java 使用.aar_java - 使用grad解析aar库的传递依赖性

    我已经调查了一段时间,可能看到这里最流行的答案与aar和transitive依赖关系有关,但不知何故,我仍然不清楚如何使这个工作. 所以: 我有给定gradle配置的android库: apply p ...

  7. Android Material Design简单使用 http://www.cnblogs.com/android-blogs/p/5632103.html

    Android Material Design简单使用 吐槽 作为一个 Android developer,没有什么比拿着 UI 设计的一堆 iOS 风格的设计 来做需求更恶心的了,基本所有空间都要照 ...

  8. Linux内核配置选项详解

    第一部分 01.Code maturity level options ---> 代码成熟等级选项 01.01. [ ] Prompt for development and/or incomp ...

  9. 嵌入式Linux内核配置、裁剪与编译浅析(ARM版)

    第一部分Linux内核裁减 (1)安装新内核: i)将新内核copy到/usr/src下并解压: #tar -zxvf linux-2.6.38.4.tar.gz ii) 将名为linux的符号链接删 ...

最新文章

  1. Python 查看本机WiFi密码
  2. sqlite3常用命令以及django如何操作sqlite3数据库
  3. 商务礼仪 细节决定成败
  4. python在工作上可以干什么-学习Python以后能在企业里工作中能做什么?
  5. row height
  6. 牛逼!Python函数和文件操作(长文系列第3篇)
  7. MySql 内存表使用
  8. Java FileReader与FileWriter讲解
  9. 用MATLAB编程课程设计,matlab课程设计报告---用Mtlab编程实现句柄图形应用
  10. bcnf分解算法_BCNF的保持无损连接的分解
  11. ORA-01012: not logged on 解决办法
  12. jsGannt Improved在vue中的使用
  13. 苏宁11.11:搜索引擎Solr在苏宁易购商品评价系统中的应用
  14. 会计准则中借方与贷方如何理解分析
  15. 支付宝密钥及文件生成方式
  16. linux服务器 cpu使用率过高,服务器CPU使用率过高排查与解决思路
  17. 微信公众号之渲染静态模板
  18. 如何管理一台集群的虚拟机
  19. Measurement Studio函数ReadMultiSampleAsync
  20. 数据分析展示B站UP主假吃强(Cram阿强)的面目-视频与简介篇

热门文章

  1. 初级中学计算机教师考核方案,计算机科学学院2019年教师课堂教学质量考核实施方案...
  2. 使用sentinelsat包和IDM批量下载offline的sentinel数据
  3. MacOS下ZeroNet如何切换Data目录
  4. Hango Rider:网易数帆开源 Envoy 企业级自定义扩展框架
  5. 007-mysql group by 之 rollup
  6. zblog php1.51,zblogphp1.5.1 function文件夹文件详细说明
  7. 简历模板共20个模板打包带走
  8. STC89C52使用IIC驱动24C02
  9. Google V8 引擎
  10. 2022第四届长安杯WRITE UP