集合数据类型

集合数据类型使您能够在表的单个行内存储和处理数据集合。集合数据类型有两个组件:类型构造函数(它确定集合类型是 SET、MULTISET 还是 LIST)和元素类型(它指定集合可包含的数据类型)。(下列各节详细描述了 SET、MULTISET 和 LIST 集合类型。)

集合的元素几乎可以具有任何数据类型。(要获取例外情况的列表,请参阅对集合的限制。)集合的元素就是集合包含的值。在包含下列值的集合中:{'blue', 'green', 'yellow', and 'red'}, 'blue' 表示集合中的单个元素。 集合中的每个元素都必须具有相同的类型。例如:元素类型为 INTEGER 的集合只能包含整数值。

集合的元素类型可以表示单个数据类型(列),也可以表示多个数据类型(行)。在以下示例中,col_1 列表示整数的 SET:
col_1 SET(INTEGER NOT NULL)
要定义包含多个数据类型的集合数据类型,可使用命名行类型或未命名行类型。 在以下示例中,col_2 列表示包含 namesalary 字段的行的 SET:
col_2 SET(ROW(name VARCHAR(20), salary INTEGER) NOT NULL)
重要: 定义集合数据类型时,必须将 NOT NULL 约束作为类型定义的一部分包括进来。不允许对集合数据类型施加任何其他列约束。
在将列定义为具有集合数据类型之后,可以对该集合执行下列操作:

有关用于创建集合数据类型的语法的信息,请参阅 GBase 8s SQL 指南:语法 中的 Data Type 段。有关如何将一种集合类型的值转换为具有另一集合类型的值的信息,请参阅 GBase 8s SQL 指南:教程