集合数据类型

集合数据类型是由一个或多个元素(所有元素都具有相同的数据类型)组成的复杂类型。集合元素可以为除 BYTE、TEXT、SERIAL、SERIAL8 或 BIGSERIAL 之外的任何数据类型(包括其他复杂类型)。

要点: 元素不能具有 NULL 值。必须对集合元素指定 NOT NULL 约束。没有其他约束对于集合有效。

GBase 8s 支持三种类型的内置集合类型:LIST、SET 和 MULTISET。用来声明这些集合的关键字是类型构造函数的名称或只是构造函数。有关集合类型的语法,请参阅 GBase 8s SQL 指南:语法。可以将相同表的不超过 97 列声明为集合数据类型。

当为集合指定元素值时,将元素值列示在构造函数后面并用花括号( { } ) 括起来。例如,假设您具有含以下 MULTISET 数据类型的集合列:
CREATE TABLE table1
(
      mset_col MULTISET(INTEGER NOT NULL)
)
下一个 INSERT 语句向此列添加一组元素值。(这两个示例中的单词 MULTISET 是 MULTISET 构造函数。)
INSERT INTO table1 VALUES (MULTISET{5, 9, 7, 5})
可使花括号保留为空来指示空集:
INSERT INTO table1 VALUE (MULTISET{})

空集合不等同于列的 NULL 值。