• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >数据库其它 > 举例简单介绍PostgreSQL中的数组

举例简单介绍PostgreSQL中的数组

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了postgresql 数组,postgresql 数组类型,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
);
</div>

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

  •     购买商品的编号
  •     数量
  •     价格

要往这个表里插入数据的 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)
);
</div>

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

 

SELECT title, unnest(tags) items FROM products
</div>


你还可以使用 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]
</div>

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 介绍PostgreSQL中的Lateral类型
  • 在PostgreSQL中使用数组时值得注意的一些地方
  • 介绍PostgreSQL中的范围类型特性
  • 举例简单介绍PostgreSQL中的数组

相关文章

  • 2017-05-11数据库查询优化(主从表的设计)
  • 2017-05-11MySQL与Oracle数据类型对应关系(表格形式)
  • 2017-05-11用户管理的备份(一致性备份、非一致性备份、脱机备份、联机备份)
  • 2017-07-23c3p0数据库连接池使用小结
  • 2017-05-11redis数据库查找key在内存中的位置的方法
  • 2017-05-11SQL注入详解(扫盲篇)
  • 2017-05-11Access数据库升级为SQL数据库的注意事项和方法
  • 2017-05-11用SQL Server访问Sybase中的表的方法
  • 2017-05-11ms SQL server数据库备份、压缩与SQL数据库数据处理的方法
  • 2017-05-11mssql 区分大小写的详细说明

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • 大数据量时提高分页的效率
    • SQL注入绕过的技巧总结
    • ACCESS转化成SQL2000需要注意的几个问题小结
    • where 子句的执行顺序
    • 用户管理的备份(一致性备份、非一致性备份、脱机备份、联机备份)
    • HTTP头注入漏洞之SQL注入
    • PLS-00907: cannot load library unit
    • Instagram提升PostgreSQL性能的五个技巧
    • postgresql sql批量更新记录
    • Select data from an Excel sheet in MSSQL

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有