您现在的位置是:首页 >技术教程 >PostgreSQL 与标准 SQL:2023 新特性网站首页技术教程
PostgreSQL 与标准 SQL:2023 新特性
上一篇文章我们介绍了即将发布的 SQL:2023 标准中的新特性。作为最先进的开源关系型数据库,PostgreSQL 至少支持了 SQL:2023 标准 177 项强制功能中的 170 项。
本文并不是一个完整的 PostgreSQL 支持列表,而是专注于 SQL:2023 标准新特性在 PostgreSQL 中的实现情况。
PostgreSQL 对于 SQL 标准的完整支持列表可以参考 PostgreSQL 官方文档。
UNIQUE 约束中的空值(F292)
PostgreSQL 15 开始支持在定义唯一索引或者唯一约束时指定多个 NULL 值是否相同。
在此之前,多个 NULL 值被看作不同的数据,意味着唯一索引和唯一约束中可以存在多个 NULL 值。如果不允许唯一索引和唯一约束中存在多个 NULL 值可以通过 UNIQUE NULLS NOT DISTINCT 进行限制。
默认选项为 UNIQUE NULLS DISTINCT。
分组表中的 ORDER BY(F868)
PostgreSQL 10 之前就已经支持使用没有出现在 SELECT 列表中的分组表字段进行排序。
GREATEST 和 LEAST 函数(T054)
PostgreSQL 8.1 开始支持 GREATEST(最大值)以及 LEAST(最小值)函数。
字符串填充函数(T055)
至少从 PostgreSQL 7.1 开始就提供了 LPAD(左侧填充)以及 RPAD(右侧填充)函数。
多字符 TRIM 函数(T056)
至少从 PostgreSQL 7.1 开始就提供了支持截断多字符的 TRIM 函数。
可选的字符串类型最大长度(T081)
PostgreSQL 中的 VARCHAR 类型允许不指定最大长度。
增强的递归循环标识(T133)
PostgreSQL 14 开始支持通用表表达式(WITH)语句中的循环递归检查功能。
ANY_VALUE 函数(T626)
PostgreSQL 16 将会提供新的 ANY_VALUE 函数,可以从一组数据中返回任意一个非空值。
非十进制的整数常量(T661)
PostgreSQL 16 将会支持十六进制、八进制以及二进制的整数常量。
数字常量中的下划线(T662)
PostgreSQL 16 将会支持在数字常量中使用下划线,提高可读性。
JSON 数据类型(T801)
PostgreSQL 9.2 提供了 json 类型,PostgreSQL 9.4 增加了 jsonb 类型。
增强的 JSON 数据类型(T802)
PostgreSQL 目前没有实现这个功能。
基于字符串的 JSON(T803)
由于这个功能已经被最新 JSON 数据类型替代,PostgreSQL 没有支持计划。
SQL/JSON 路径中的十六进制整数常量(T840)
PostgreSQL 16 将会允许在 SQL/JSON 路径语言中使用十六进制整数常量。
SQL/JSON 简化访问符(T860-T864)
PostgreSQL 目前没有实现这个功能。
SQL/JSON 元素方法(T865-T878)
PostgreSQL 目前没有实现这个功能。
JSON 数据比较功能(T879-T882)
PostgreSQL 9.4 提供了 JSON 数据的比较、排序以及分组操作。
属性图查询语言
PostgreSQL 目前没有实现属性图查询语言 (SQL/PGQ)。