枚举类型 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 数据库支持集合类型 SET。SET 是一个字符串对象,它可以有零个或多个值,每个值都必须来自列表 '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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




