logo图片
MySql教程
MySql用户管理
MySQL数据库
MySql表格和视图
MySQL查询
MySQL索引
MySQL子句
MySQL授权
MySql控制流
MySQL条件
MySQL连接
MySQL键
MySQL触发器
MySQL聚合函数
MySQL常用
MySQL正则表达式
MySql差异性

MySQL BIT

BIT是MySQL中使用的一种数据类型,它允许我们 存储位值。该位的值在 1-64 范围内。它只会存储0和1中的值。如果我们存储类似2的位值,它将返回错误消息。通常,我们可以使用创建表或定义语句来定义位值。

语法:

以下是定义位MySQL中的数据类型:
BIT (M);
在这里,关键字 BIT 表示二进制值的存储,并且其值在变量 M 中提及。 M的值可以在1-64的范围内。如果我们未指定M的任何值,则它包含的默认值为1。因此,以下语句是等效的:
column_name BIT(1);
OR 
column_name BIT;
如果要指定字面值,可以使用 b'value' 0bvalue表示法。在此表示法中,该值表示只能以零和一写入的二进制值。例如,b'111'和b'10000000'分别代表7和128。
位值文字的默认字符集是二进制字符串。请参阅以下语句:
mysql> SELECT CHARSET(B');--binary

MySQL BIT示例

让我们了解 MySQL 中的BIT概念。 a>通过一个例子。首先,我们将创建一个名为 my_calendars 的新表,其中包含 'days'列为BIT(7)。请参阅以下语句:
CREATE TABLE my_calendars(
    years INT,
    weeks INT,
    days BIT(7),
    PRIMARY KEY(years, weeks)
);
"天"列值指示工作日还是休息日。这里1代表工作日,0值代表休息日。
假设 年中一周的周六周日 2020 不是工作日。在这种情况下,我们可以将记录插入到my_calendars表中,如下所示:
mysql> INSERT INTO my_calendars (years, weeks, days) 
VALUES(2020, 2, B'1111100');
接下来,执行以下查询以从my_calendar表中检索数据:
mysql> SELECT * FROM my_calendars;
我们应该得到如下输出:
MySQL BIT
我们可以看到检索到的内容结果未按我们期望的格式显示数据。因此,我们将使用 BIN()函数检索二进制数据。为此,我们需要专门将"天"列称为BIN()。
mysql> SELECT years, weeks, BIN(days) FROM my_calendars;
执行后,我们将以所需的方式获取输出。
MySQL BIT
如果我们将一个值插入长度小于M位的位列中,MySQL自动在指定位值的左侧添加零。假设第三周的第一天 st 关闭;我们可以将01111100插入"天"列。请参阅以下语句:
mysql> INSERT INTO my_calendars (years, weeks, days) 
VALUES(2020, 1, B'111100');
验证数据后,您可以看到它运行正常。
MySQL BIT
我们可以看到,在返回结果之前,检索到的输出除去了前导零。因此,我们将使用 LPAD()函数正确检索数据:
mysql> SELECT years, weeks, LPAD (BIN(days), 7, '0') FROM my_calendars;
请参见以下输出:
MySQL BIT

BIT与TINYINT

BIT和TINYINT在MySQL中的用法不同。
BIT数据类型用于存储1位的值,该值可以为0或1.它存储的值在1到64的范围内。如果我们尝试在BIT列中插入其他值(例如2),MySQL会发出错误。相反, TINYINT数据类型用于存储8位整数。它存储值在-128到+127或0到256的范围内,并占用1个字节。如果尝试在TINYINT列中插入其他值(例如987),则MySQL会发出错误。
在本文中,我们学习了如何在MySQL表中使用和存储BIT数据类型。

昵称: 邮箱:
Copyright © 2020 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4