---
title: github-fill
description: "集合类型 OceanBase 数据库支持集合类型 SET 。 SET 是一个字符串对象，它可以有零个或多个值，每个值都必须来自列表 &#x27;value1&#x27;, &#x27;value2&#x27;, ... SET 为可变长度类型，支持 UTF8MB4 字符集。 SET 的语法如下： SET(&#x27;value1&#x27;,&#x27;value2&#x27;,...) [CH…"
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.5.0

# 集合类型

更新时间：2025-12-26 15:42:48

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.5.0/zh-CN/700.reference/500.sql-reference/100.sql-syntax/200.common-tenant-of-mysql-mode/100.basic-elements-of-mysql-mode/100.data-type-of-mysql-mode/700.set-type-of-mysql-mode.md)  

OceanBase 数据库支持集合类型 `SET`。`SET` 是一个字符串对象，它可以有零个或多个值，每个值都必须来自列表 `'value1', 'value2', ...`

`SET` 为可变长度类型，支持 `UTF8MB4` 字符集。

`SET` 的语法如下：

```sql
SET('value1','value2',...) [CHARACTER SET charset_name] [COLLATE collation_name]

```

`SET` 值在内部表示为整数。一个 `SET` 列最多定义 64 个元素，每个元素长度最多 255 个字符。由多个集合元素组成的 `SET` 列值用逗号 (,) 分隔。

例如，`SET('a', 'b') NOT NULL` 的列可以具有以下值：

```sql
' '
'a'
'b'
'a,b'

```

`CHARACTER SET` 用于指定字符集。如果需要，可以使用 `COLLATE` 属性以及其他属性指定字符集的排序规则。

`SET` 值以数字方式存储，存储值的低位对应于第一个集合元素。`SET` 值按数字排序。`NULL` 值排在非 `NULL` 值之前。如果启用了严格的 SQL 模式，定义重复值会导致警告或错误。创建表时，会自动从表定义中的 `SET` 成员值中删除尾部空格。

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
