暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

openGauss每日一练第 12天|定义数据类型

原创 smiling 2021-12-16
247

学习目标

学习openGauss定义数据类型

1.创建一个复合类型,重命名复合类型,为复合类型增加属性、删除属性

–创建一种复合类型

CREATE TYPE complex AS (c1 int, c2 text);
\d complex

image.pngimage.png
–重命名数据类型

ALTER TYPE complex RENAME TO comfoll;

image.png
–增加一个新的属性

ALTER TYPE comfoll ADD ATTRIBUTE c3 int;
\d comfoll

image.png
–删除一个属性

ALTER TYPE comfoll drop ATTRIBUTE c1;
\d comfoll

image.png
image.png
2.创建一个枚举类型,新增标签值,重命名标签值

–创建一个枚举类型

CREATE TYPE dml AS ENUM ('select', 'create', 'update');

image.png
–查看类型

select * from pg_enum;

image.png
–为枚举类型添加一个标签值

ALTER TYPE dml ADD VALUE IF NOT EXISTS 'delete' BEFORE 'update';

image.png

–不指定顺序添加标签值

ALTER TYPE dml ADD VALUE 'alter';

image.png

select * from pg_enum;

image.png
–重命名一个标签值

ALTER TYPE dml RENAME VALUE 'create' TO 'create_table';
select * from pg_enum;

image.png
image.png
3.使用新创建的类型创建表

–使用复合类型创建表

CREATE TABLE t1(a int, b comfoll);
INSERT INTO t1 values(1,('haikou',1));
SELECT (b).c3 FROM t1;
SELECT * FROM t1;

image.png
–使用枚举类型创建表

4.删除类型

DROP TYPE comfoll;
DROP TYPE comfoll cascade;
drop type dml;
drop table t1;

注:
当有对象在使用定义的类型时,DROP TYPE comfoll;会报错,需要加上cascade删除,当把表先删除,类型没有被使用时,可以直接DROP TYPE comfoll;
image.png

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论