数组是一种可变长度、由一个或多个维度组成的数据类型列表。
PostgreSQL 一直支持 数组,尽管相关函数和功能的实现和可用性已随着时间的推移得到了显著改进。
变更历史
进行中
- PostgreSQL 18
- 添加了
array_reverse()函数 (commit 49d6c7d8
- 添加了
- PostgreSQL 16
- 添加了
array_sample()函数 (commit 888f2ea0) - 添加了
array_shuffle()函数 (commit 888f2ea0)
- 添加了
- PostgreSQL 14
- 添加了
trim_array()函数 (commit 0a687c8f)
- 添加了
- PostgreSQL 9.6
- 在数组切片说明符中,一个或两个边界都可以省略 (commit 6efbded6)
- 添加了
array_to_tsvector()函数 (commit 6943a946) - 添加了
tsvector_to_array()函数 (commit 6943a946)
- PostgreSQL 9.5
- 添加了
array_position()函数 (initial commit 13dbc7a8) - 添加了
array_positions()函数 (initial commit 13dbc7a8) - 为
width_bucket()添加了数组支持 (commit e80252d4)
- 添加了
- PostgreSQL 9.4
- PostgreSQL 9.3
- 添加了
array_remove()函数 (commit 84a42560) - 添加了
array_replace()函数 (commit 84a42560)
- 添加了
- PostgreSQL 9.2
- 添加了
array_to_json()函数 (commit 39909d1d)
- 添加了
- PostgreSQL 8.4
- 添加了
array_agg()函数 (commit 3379fae6) - 添加了
array_fill()函数 (commit 2c773296) - 添加了
array_length()函数 (commit f98f6ee0) - 添加了
array_ndims()函数 (commit 254aecb7) - 添加了
cardinality()函数 (commit f98f6ee0) - 添加了
generate_subscripts()函数 (commit 1fcb977a) - 添加了
unnest()函数 (commit c889ebce)
- 添加了
- PostgreSQL 8.2
- 添加了对
NULL元素的支持 (initial commit cecb6075) - 添加了
array_nulls向后兼容参数 (commit cecb6075)
- 添加了对
- PostgreSQL 7.4
- 添加了
ARRAY[]构造函数 (commit 730840c9) - 添加了
array_append()函数 (commit 730840c9) - 添加了
array_cat()函数 (commit 730840c9) - 添加了
array_lower()函数 (commit fef731d1) - 添加了
array_prepend()函数 (commit 730840c9 - 添加了
array_to_string()函数 (commit b3c0551e) - 添加了
array_upper()函数 (commit fef731d1) - 添加了
string_to_array()函数 (commit b3c0551e)
- 添加了
示例
数组的基本用法示例
postgres=# SELECT ARRAY['foo','bar','baz']; array --------------- {foo,bar,baz} (1 row)
参考资料
- PostgreSQL documentation: Arrays
- PostgreSQL documentation: Array Functions and Operators
- PostgreSQL documentation: Array Constructors
有用链接
- How to Update an Array in PostgreSQL - February 2023 blog article by Talha Saif Malik / CommandPrompt
