数据类型-Set集合
多个数据选项可以同时保存,本质按照对应的二进制位来控制
•1表示选中•0表示没有选中
语法
set('值1', '值2'...)
复制
1个字节,set只能有8个选项
2个字节,set只能有16个选项
3个字节,set只能有24个选项
8个字节,set只能有64个选项复制
set和enum一样,最终存储到数据字段中的依然是数字而不是真实的字符串
create table my_set(
hobby set('篮球', '足球', '羽毛球', '乒乓球')
);
mysql> desc my_set;
+-------+------------------------------------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------------------------------------------+------+-----+---------+-------+
| hobby | set('篮球','足球','羽毛球','乒乓球') | YES | | NULL | |
+-------+------------------------------------------------+------+-----+---------+-------+
-- 多个选项逗号隔开
insert into my_set (hobby) values ('篮球,足球,乒乓球');
mysql> select * from my_set;
+-------------------------+
| hobby |
+-------------------------+
| 篮球,足球,乒乓球 |
+-------------------------+
-- 数据选项与插入的顺序无关,最终会变成选项对应的顺序
insert into my_set (hobby) values ('足球,篮球');
mysql> select * from my_set;
+-------------------------+
| hobby |
+-------------------------+
| 篮球,足球,乒乓球 |
| 篮球,足球 |
+-------------------------+复制
数据存储的方式
系统将对应的数据选项按照顺序进行编排,从第一个开始进行占位,每一个都对应一个二进制位
数据存储的时候,如果被选中,那么对应的为的值就变为1,否则为0
系统在存储的时候,会自动将的得到的二进制反转,然后转换成十进制存储
set('篮球','足球','羽毛球','乒乓球')
1 1 1 1
('篮球,足球,乒乓球')
1 1 0 1
反转: 1 0 1 1 =》 1 + 2 + 8 = 11
('足球,篮球')
1 1 0 0
反转: 0 0 1 1 =》 1 + 2 = 3复制
-- 以数值方式查看数字
mysql> select hobby + 0 from my_set;
+-----------+
| hobby + 0 |
+-----------+
| 11 |
| 3 |
+-----------+复制
可以插入数值代替实际插入
mysql> insert into my_set (hobby) values (15);
mysql> select hobby from my_set;
+-----------------------------------+
| hobby |
+-----------------------------------+
| 篮球,足球,乒乓球 |
| 篮球,足球 |
| 篮球,足球,羽毛球,乒乓球 |
+-----------------------------------+复制
集合的意义
•规范数据•节省存储空间•enum单选•set复选
文章转载自Coding Big Tree,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【MySQL 30周年庆】MySQL 8.0 OCP考试限时免费!教你免费领考券
墨天轮小教习
3363次阅读
2025-04-25 18:53:11
数据库国产化替代深化:DBA的机遇与挑战
代晓磊
1321次阅读
2025-04-27 16:53:22
MySQL 30 周年庆!MySQL 8.4 认证免费考!这次是认真的。。。
严少安
912次阅读
2025-04-25 15:30:58
2025年4月国产数据库中标情况一览:4个千万元级项目,GaussDB与OceanBase大放异彩!
通讯员
798次阅读
2025-04-30 15:24:06
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
538次阅读
2025-04-17 17:02:24
一页概览:Oracle GoldenGate
甲骨文云技术
503次阅读
2025-04-30 12:17:56
GoldenDB数据库v7.2焕新发布,助力全行业数据库平滑替代
GoldenDB分布式数据库
481次阅读
2025-04-30 12:17:50
优炫数据库成功入围新疆维吾尔自治区行政事业单位数据库2025年框架协议采购!
优炫软件
369次阅读
2025-04-18 10:01:22
MySQL 8.0 OCP 1Z0-908 考试解析指南(二)
JiekeXu
361次阅读
2025-04-30 17:37:37
给准备学习国产数据库的朋友几点建议
白鳝的洞穴
352次阅读
2025-05-07 10:06:14