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

OceanBase SQL语句枚举类型和集合类型

2024-04-11
317

枚举类型 ENUM 是一个只能有一个值的字符串对象,该值必须来自列表 'value1', 'value2', ...,枚举值必须是带引号的字符串文字。

ENUM 值在内部表示为整数。一个 ENUM 列最多可以容纳 65,535 个不同的元素(实际限制小于 3000)。ENUM 为可变长度类型,支持 UTF8MB4 字符集。

ENUM 语法如下:

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

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

ENUM 类型具有以下优点:

  • 输入的字符串会自动编码为数字,压缩数据存储。

  • 可读的查询和输出。数字被转换回查询结果中的相应字符串。


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

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

SET 的语法如下:

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

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

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

' '
'a'
'b'
'a,b'

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

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

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

评论