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]
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
- BEYOND銆婂崕绾砃O.1 2CD 鍗庣撼鍞辩墖銆媅WAV+CUE][920MB]
- 邓寓君2023-溯·君【十倍音质WAV分轨】
- MedwynGoodall《女巫医5MedicineWoman5》[WAV]
- 刘敏涛2024-美人【十倍音质WAV分轨】
- 蔡幸娟.1997-再见!蔚蓝海岸【艺能动音】【WAV+CUE】
- 王识贤.2009-足步天下【乾坤唱片】【WAV+CUE】
- 群星.2024-奔赴星辰的我们影视剧原声带【纯然映画】【FLAC分轨】
- 张其萍《美丽中国梦》[WAV+CUE]
- 中国电视歌选专集之二《合家欢-歌声1985》[WAV+CUE]
- dts-金牌猛士的士高(串烧版三)
- 蔡琴《华纳NO.1 2CD 华纳唱片》[WAV+CUE][810MB]
- 刀郎《弹词话本 2020》[FLAC/分轨][300MB]
- 镭射效果-《音响感应测试带》[WAV+CUE][579M]
- 群星.1994-星SING交差HITS【滚石】【WAV+CUE】
- 水木年华.2003-3新歌+精丫喜洋洋】【WAV+CUE】