PostgreSQL数组类型的增、删、改、查详解

您所在的位置:网站首页 pg修改字段类型的sql语句 PostgreSQL数组类型的增、删、改、查详解

PostgreSQL数组类型的增、删、改、查详解

#PostgreSQL数组类型的增、删、改、查详解| 来源: 网络整理| 查看: 265

文章目录 前言一、定义数组类型二、数组类型插入数据三、数组类型修改数据四、数组类型删除数据五、数组类型查询数据六、数组类型操作符七、数组类型常用函数

前言

PostgreSQL支持表的字段使用定长或可变长度的一维或多维数组,数组的类型可以是任何数据库内建的类型、用户自定义的类型、枚举类型以及组合类型。 数组类型的定义就是通过在其基本类型后面附加中括号 [] 来实现的,中括号中可以给一个长度数字,也可以不给。

一、定义数组类型

首先我们先创建了t_test表,里面包含int类型的数组字段name和text类型的数组字段address,如下的代码片段。

create table t_test ( id bigint, name integer[], address text[] ); 二、数组类型插入数据

方式1:使用{}将数据转为数组

insert into t_test(id,name,address) values(1,'{1,2}','{"beijing","shanghai"}');

方式2:使用array将数据转为数组

insert into t_test(id,name,address) values(2,array[1,2],array['beijing','shanghai']);

插入后的结果如下图。 在这里插入图片描述

三、数组类型修改数据

尾部追加数组元素:可以使用array_append函数或者使用||。

--使用||修改 update t_test set name = name||'{3}' , address = address||'{"shenzhen"}' where id=1; --使用array_append函数修改 update t_test set name = array_append(name,3) , address = array_append(address,'shenzhen') where id=1;

头部追加数组元素:使用array_prepend函数

update t_test set name = array_prepend(3,name) , address = array_prepend('shenzhen',address) where id=2; 四、数组类型删除数据

通过数组类型删除整行数据。

--如果name数组的第二个元素为1,则删除整行数据 delete from t_test where name[2] = 1;

如果要删除数组中的某个元素,需要利用array_remove函数配合update语句实现,代码如下。

update t_test set name= array_remove(name,3) where id=2; 五、数组类型查询数据

查询数组中某个元素,例如查询address数组及address数组的第二个元素

select address,address[2] from t_test;

查询name数组中包含3元素的数据行

select * from t_test where array_position(name,3)>0; 六、数组类型操作符

以下操作符是用于数组间的处理或者判断。

操作符描述例子结果=等于ARRAY[1,2,3] = ARRAY[1,2,3]true不等于ARRAY[1,2,3] ARRAY[1,2,4]true大于ARRAY[1,4,3] > ARRAY[1,2,4]true= ARRAY[1,4,3]true@>包含ARRAY[1,4,3] @> ARRAY[3,1]true


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3