postgresql 数组类型初步实践


实践环境

数据库:postgresql 9.4;操作系统:windows

创建包含数组类型的数据库

注意在设置default 值时(当然你可以不指定认值),要声明数组的类型,像这样声明"::bigint[]"。

create table testarray(
	id serial primary key,images bigint[] default array[]::bigint[]
);

插入数组值

注意插入数组时,也要声明数组的类型,同上

insert into testarray (images) values(array[1,2,3,4,5,6]::bigint[]);

查询刚插入的数据

查询语句:

select * from testarray;

结果:

数组的操作

判断元素是否存在(操作符:"any")

要注意为查询出来的数组指定类型。

select 0 = any ((select images from testarray where id=1)::int[]) as isContain

查询结果:

删除元素(array_romeve),但不影响持久数据

select array_remove((select images from testarray)::varchar[],'1');

查询结果:

删除元素,保存结果

思路是将数据查询出来进行操作之后("||"是一个数组操作符,合并元素和数组),再保存回到数据库。可以删除单个元素,也可以删除一个元素集(另一个数组),举一反三。

update testarray set images = (select images from testarray where id=1)::int[] || 1;
select images from testarray;

给数据添加元素(操作符:"||"),但是不保存

给数组添加元素实际上就是将元素合并到一个数组里,办法很多,这里只距离"||"操作符的使用。

单个元素添加到数组

select (select images from testarray where id=1)::int[] || 100 as newimages;

添加多个元素到数组

select (select images from testarray where id=1)::int[] || array[200,300,400]::int[] as newimages;

给数据添加元素,并且保存

思路同5.3

update testarray update set images = (select images from testarray where id=1)::int[] || array[200,400]::int[] ;
select images from testarray;

附录

博客不是系统的教程,只是简单的介绍postgresql 数据类型的使用。关于postgresql数组类型的操作符和函数,可以参见官方文档:http://www.postgresql.org/docs/9.1/static/functions-array.html

相关文章

项目需要,有个数据需要导入,拿到手一开始以为是mysql,结果...
本文小编为大家详细介绍“怎么查看PostgreSQL数据库中所有表...
错误现象问题原因这是在远程连接时pg_hba.conf文件没有配置正...
因本地资源有限,在公共测试环境搭建了PGsql环境,从数据库本...
wamp 环境 这个提示就是说你的版本低于10了。 先打印ph...
psycopg2.OperationalError: SSL SYSCALL error: EOF detect...