手机
当前位置:查字典教程网 >编程开发 >数据库其他 >举例简单介绍PostgreSQL中的数组
举例简单介绍PostgreSQL中的数组
摘要:PostgreSQL有很多丰富的开箱即用的数据类型,从标准的数字数据类型、到几何类型,甚至网络数据类型等等。虽然很多人会忽略这些数据类型,但...

PostgreSQL 有很多丰富的开箱即用的数据类型,从标准的数字数据类型、到几何类型,甚至网络数据类型等等。虽然很多人会忽略这些数据类 型,但却是我最喜欢的特性之一。而数组数据类型正如你所期望的,可以在 PostgreSQL 存储数组数据,有了这个特性,你可以在单个表中实现以往需要多个表才能实现的存储要求。

为什么要使用数组来存储数据,如果你是应用开发人员,那么在数据库中使用同样的模型来存储程序中的数据,何乐而不为呢。况且这样的做法还能提升性能。下面我们将介绍如何使用 PostgreSQL 的数组类型。

假设你在一个网站上购买物品,那么你所购买的信息就可以用下面这个表来表示:

CREATE TABLE purchases ( id integer NOT NULL, user_id integer, items decimal(10,2) [100][1], occurred_at timestamp );

在这个表中,拥有一个数组字段来保持多个商品记录,包括:

购买商品的编号 数量 价格

要往这个表里插入数据的 SQL 如下:

INSERT INTO purchases VALUES (1, 37, '{{15.0, 1.0, 25.0}, {15.0, 1.0, 25.0}}', now());

INSERT INTO purchases VALUES (2, 2, '{{11.0, 1.0, 4.99}}', now());

一个更有实际意义的例子是标签的使用,你可以用标签来标识购买的物品:

CREATE TABLE products ( id integer NOT NULL, title character varying(255), description text, tags text[], price numeric(10,2) );

你可使用基本的查询语句来获取数据:

SELECT title, unnest(tags) items FROM products

你还可以使用 Postgres 的 Gin and Gist 索引来根据指定的标签快速搜索产品:

-- Search where product contains tag ids 1 AND 2 SELECT * FROM products WHERE tags @> ARRAY[1, 2] -- Search where product contains tag ids 1 OR 2 SELECT * FROM products WHERE tags && ARRAY[1, 2]

【举例简单介绍PostgreSQL中的数组】相关文章:

在Windows下自动备份PostgreSQL的教程

关于ADOX的相关知识

在PostgreSQL的基础上创建一个MongoDB的副本的教程

介绍PostgreSQL中的jsonb数据类型

node-mysql中防止SQL注入的方法总结

海量数据库的查询优化及分页算法方案 2 之 改良SQL语句

在PostgreSQL上安装并使用扩展模块的教程

一个提升PostgreSQL性能的小技巧

简单分析SQLite4的一些设计改变

在CRUD操作中与业务无关的SQL字段赋值的方法

精品推荐
分类导航