PostgreSQL数据类型:复合类型及其数组

本文介绍了在特定数据库中如何创建及使用复合类型(person, inventory_item),包括复合类型的数组操作。展示了不同类型组合时的表结构定义及插入数据的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

只有int类型时:

create type person  as(id int,age int);
create table stu2( info person[2], mark int);  
INSERT INTO stu2(info,mark) values(ARRAY[CAST(row(2,22) AS person),CAST(row(2,24) AS person)],98);  
INSERT INTO stu2 values('{"(2,22)","(3,23)"}',98);
INSERT INTO stu2(info[0],info[1], mark) values((2,22),(4,24),100);
INSERT INTO stu2(info[0].id,info[0].age,info[1].id,info[1].age, mark) values(2,22,4,24,100) ;


int和char混合时:

创建复合类型

CREATE TYPE inventory_item AS ( 
    name            text,     
    supplier_id     integer,     
    price           numeric );

使用复合类型

CREATE TABLE on_hand (     
    item      inventory_item,     
    count     integer );
INSERT INTO on_hand(item,count) VALUES (('fuzzy dice', 42, 4),55);

复合类型的数组

CREATE TABLE on_hand2 (     item      inventory_item[2],     count     integer );
INSERT INTO on_hand2 values('{"(\"ddd\",44,22)","(\"dddd\",3,23)"}',98); 
INSERT INTO on_hand2 values(array[CAST (ROW('aaaa',3,23)  AS inventory_item),CAST(ROW('dddd',3,23) AS inventory_item)] ,98);
INSERT INTO on_hand2(item[0].name,item[0].supplier_id,item[0].price,count) VALUES ('fuzzy dice', 42, 4, 3444);
INSERT INTO on_hand2(item[0],item[1],count) VALUES (('fuzzy dice', 42, 4),('fff', 33, 66),55);


转载于:https://my.oschina.net/liuyuanyuangogo/blog/353879

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值