问题: Postgres数据库是否可以存放数组形式的数据?
详解: Postgres 数据库允许把字段定义为可变长度的数组。数据类型既可以是内置类型,也可以是用户自定义的类型或枚举类型。
例子:
创建表:
create table mytable(name text,friends text[]);
插入数据:
insert into mytable values ('Jeremy','{"Amy","Paul","Bob","Sherely"}');
注意:插入数据中的数组元素值必须用双引号引起来的, 如果使用单引号就会出错。
另一种插入数据的方式:
insert into mytable values ('Chuck',Array['Kobe','Asin','Lie']);
注意:此时插入数据中的数组元素值需使用单引号。
访问数组数据:
select name from mytable where friends[2] = 'Paul';
select friends[1:2] from mytable;
修改数组数据:
update mytable set friends[2] = 'Cool' where name = 'Jeremy';
update mytable set friends = '{"John","Sam","Tom"}';
搜索数组数据:
要在数组中查找某个特定元素值, 可以使用ANY关键词。
select name from mytable where 'Tom' = ANY(friends);
要查找数组中所有值都匹配某个值, 可以使用ALL。
select name from mytable where 'Tom' = ALL(friends);