前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【mysql】位类型BIT

【mysql】位类型BIT

原创
作者头像
兮动人
修改2022-03-11 10:28:38
1.4K0
修改2022-03-11 10:28:38
举报
文章被收录于专栏:兮动人的博客兮动人的博客

位类型:BIT

  • BIT类型中存储的是二进制值,类似010110。

二进制字符串类型

长度

长度范围

占用空间

BIT(M)

M

1 <= M <= 64

约为(M + 7)/8个字节

  • BIT类型,如果没有指定(M),默认是1位。这个1位,表示只能存1位的二进制值。这里(M)是表示二进制的位数,位数最小值为1,最大值为64
代码语言:sql
复制
CREATE TABLE test_bit1(
f1 BIT,
f2 BIT(5),
f3 BIT(64)
);

INSERT INTO test_bit1(f1)
VALUES(1);

#Data too long for column 'f1' at row 1
INSERT INTO test_bit1(f1)
VALUES(2);

INSERT INTO test_bit1(f2)
VALUES(23);
代码语言:sql
复制
DESC test_bit1;
在这里插入图片描述
在这里插入图片描述
代码语言:sql
复制
INSERT INTO test_bit1(f1)
VALUES(0),(1);
在这里插入图片描述
在这里插入图片描述

控制台上查看是显示16进制的

在这里插入图片描述
在这里插入图片描述
  • 超出范围,因为 bit 是二进制的,0和1,十进制的 2 转为二进制是 10,所以超出默认给出的1位范围#Data too long for column 'f1' at row 1 INSERT INTO test_bit1(f1) VALUES(2);
    在这里插入图片描述
    在这里插入图片描述
  • 在 f2 中增加数据,f2 BIT(5),可以得知f2值的最大为:1 1 1 1 1 ,转为十进制为:31,测试:
代码语言:sql
复制
INSERT INTO test_bit1(f2)
VALUES(31);
在这里插入图片描述
在这里插入图片描述
  • 超出后就会报错
    在这里插入图片描述
    在这里插入图片描述
  • 注意:在向BIT类型的字段中插入数据时,一定要确保插入的数据在BIT类型支持的范围内。
  • 使用SELECT命令查询位字段时,可以用BIN()HEX()函数进行读取。HEX()表示十六进制
代码语言:sql
复制
mysql> SELECT * FROM test_bit1;
+------------+------------+------------+
| f1         | f2         | f3         |
+------------+------------+------------+
| 0x01       | NULL       | NULL       |
| NULL       | 0x17       | NULL       |
+------------+------------+------------+
2 rows in set (0.00 sec)
代码语言:sql
复制
mysql> SELECT BIN(f2),HEX(f2)
    -> FROM test_bit1;
+---------+---------+
| BIN(f2) | HEX(f2) |
+---------+---------+
| NULL    | NULL    |
| 10111   | 17      |
+---------+---------+
2 rows in set (0.00 sec)
代码语言:sql
复制
mysql> SELECT f2 + 0
    -> FROM test_bit1;
+--------+
| f2 + 0 |
+--------+
|   NULL |
|     23 |
+--------+
2 rows in set (0.00 sec)
  • 可以看到,使用b+0查询数据时,可以直接查询出存储的十进制数据的值。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 位类型:BIT
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档