• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    举例简单介绍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]
    

    您可能感兴趣的文章:
    • Mybatis调用PostgreSQL存储过程实现数组入参传递
    • PHP 读取Postgresql中的数组
    • 在PostgreSQL中使用数组时值得注意的一些地方
    • 简单介绍Ruby on Rails对PostgreSQL数组类型的支持
    • PostgreSQL中使用数组改进性能实例代码
    上一篇:SQL之left join、right join、inner join的区别浅析
    下一篇:在Windows下自动备份PostgreSQL的教程
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    举例简单介绍PostgreSQL中的数组 举例,简单,介绍,PostgreSQL,