PostgreSQL中的数组与Any

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
简介:

建立表:

CREATE TABLE sal_emp (
name            text,
pay_by_quarter  integer[],
schedule        text[][]
);

插入数据:

复制代码
INSERT INTO sal_emp
  VALUES ('Bill',
  ARRAY[10000, 11000, 9000, 13000],
  ARRAY[['meeting', 'lunch'], ['training', 'presentation']]);

INSERT INTO sal_emp
  VALUES ('Carol',
  ARRAY[20000, 25000, 25000, 25000],
  ARRAY[['breakfast', 'consulting'], ['meeting', 'lunch']]);

INSERT INTO sal_emp
  VALUES ('Frank',
  ARRAY[10000, 10000, 10000, 10000],
  ARRAY[['breakfast', 'training'], ['meeting', 'lunch']]);
复制代码

查看:

复制代码
pgsql=# SELECT * FROM sal_emp;
 name  |      pay_by_quarter       |                 schedule                  
-------+---------------------------+-------------------------------------------
 Bill  | {10000,11000,9000,13000}  | {{meeting,lunch},{training,presentation}}
 Carol | {20000,25000,25000,25000} | {{breakfast,consulting},{meeting,lunch}}
 Frank | {10000,10000,10000,10000} | {{breakfast,training},{meeting,lunch}}
(3 rows)

pgsql=# 
复制代码

用Any来查询:

复制代码
pgsql=# SELECT * FROM sal_emp WHERE 10000 = ANY (pay_by_quarter);
 name  |      pay_by_quarter       |                 schedule                  
-------+---------------------------+-------------------------------------------
 Bill  | {10000,11000,9000,13000}  | {{meeting,lunch},{training,presentation}}
 Frank | {10000,10000,10000,10000} | {{breakfast,training},{meeting,lunch}}
(2 rows)

pgsql=# 
复制代码

用ALL来查询:

复制代码
pgsql=# SELECT * FROM sal_emp WHERE 10000 = ALL (pay_by_quarter);
 name  |      pay_by_quarter       |                schedule                
-------+---------------------------+----------------------------------------
 Frank | {10000,10000,10000,10000} | {{breakfast,training},{meeting,lunch}}
(1 row)

pgsql=# 
复制代码

用下标来查询:

复制代码
pgsql=# SELECT * FROM sal_emp WHERE 9000 = pay_by_quarter[3];
 name |      pay_by_quarter      |                 schedule                  
------+--------------------------+-------------------------------------------
 Bill | {10000,11000,9000,13000} | {{meeting,lunch},{training,presentation}}
(1 row)

pgsql=# 
复制代码






相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
存储 并行计算 供应链
使用 PolarDB 开源版 采用array数组和gin索引高效率解决用户画像、实时精准营销类业务需求
PolarDB 的云原生存算分离架构, 具备低廉的数据存储、高效扩展弹性、高速多机并行计算能力、高速数据搜索和处理; PolarDB与计算算法结合, 将实现双剑合璧, 推动业务数据的价值产出, 将数据变成生产力. 本文将介绍使用 PolarDB 开源版高效率解决用户画像、实时精准营销类业务需求
250 0
|
SQL 存储 JSON
PolarDB 开源版通过 parray_gin 实现高效率 数组、JSON 内元素的模糊搜索
PolarDB 的云原生存算分离架构, 具备低廉的数据存储、高效扩展弹性、高速多机并行计算能力、高速数据搜索和处理; PolarDB与计算算法结合, 将实现双剑合璧, 推动业务数据的 价值产出, 将数据变成生产力. 本文将介绍PolarDB 开源版通过 parray_gin 实现高效率 数组、JSON 内元素的模糊搜索
249 0
|
SQL 关系型数据库 PostgreSQL
PostgreSQL 数组类型
PostgreSQL 数组类型
118 0
|
搜索推荐 关系型数据库 PostgreSQL
postgresql 标签分组实战(可用于用户画像的实践)-数组篇
基于数组方式方面的基础应用,如有更大数据量的标签组合的时候,请参考下德哥写的文章 https://developer.aliyun.com/article/307731
258 0
|
关系型数据库 PostgreSQL
|
SQL 关系型数据库 PostgreSQL
PostgreSQL 10.1 手册_部分 II. SQL 语言_第 9 章 函数和操作符_9.23. 行和数组比较
9.23. 行和数组比较 9.23.1. IN 9.23.2. NOT IN 9.23.3. ANY/SOME (array) 9.23.4. ALL (array) 9.23.5. 行构造器比较 9.23.6. 组合类型比较 本节描述几个特殊的结构,用于在值的组之间进行多重比较。
1312 0
|
SQL 关系型数据库 PostgreSQL
PostgreSQL 10.1 手册_部分 II. SQL 语言_第 8 章 数据类型_8.15. 数组
8.15. 数组 8.15.1. 数组类型的定义 8.15.2. 数组值输入 8.15.3. 访问数组 8.15.4. 修改数组 8.15.5. 在数组中搜索 8.15.6. 数组输入和输出语法 PostgreSQL允许一个表中的列定义为变长多维数组。
1172 0