MySQL bit类型 |
您所在的位置:网站首页 › mysql支持多少列 › MySQL bit类型 |
本教程将向您介绍如何存储和使用位值的MySQL BIT数据类型。 MySQL BIT数据类型简介MySQL提供了允许您存储位值的BIT类型。BIT(m)可以存储多达m位的值,m的范围在1到64之间。 如果省略,默认值为1。所以下列陈述是一样的: column_name BIT(1);以及, column_name BIT;要指定一个位值字面值,可使用b'val'或0bval来表示,该val是仅包含0和1的二进制值。 开头字符b可以写成B,例如,以下两种方式都一样: b01 B11上面书写方式都是有效的位字面量。 但是,前导0b是区分大小写的,所以不能使用0B。以下是无效的字面值: 0B'1000'默认情况下,位值文字的字符集是二进制字符串,如下所示: SELECT CHARSET(B''); -- binary执行结果如下 - mysql> SELECT CHARSET(B''); +--------------+ | CHARSET(B'') | +--------------+ | binary | +--------------+ 1 row in set MySQL BIT示例以下语句创建一个名为working_calendar的新表,其中的列类型和宽度指定为BIT(7): USE testdb; CREATE TABLE working_calendar( y INT, w INT, days BIT(7), PRIMARY KEY(y,w) );days列中的值表示工作日或休息日,即1:表示工作日,0表示休息日。 假设2017年第一周的星期六和星期五不是工作日,可以在working_calendar表中插入一行,如下所示: INSERT INTO working_calendar(y,w,days) VALUES(2017,1,B'1111100');以下查询从working_calendar表检索数据,结果如下: SELECT y, w , days FROM working_calendar;执行上面查询语句,得到以下结果 - +------+---+---------+ | y | w | days | +------+---+---------+ | 2017 | 1 | 1111100 | +------+---+---------+ 1 row in set如上所见,days列中的位值被转换成一个整数。要将其表示为位值,请使用BIN函数: SELECT y, w , bin(days) FROM working_calendar;执行上面查询语句,得到以下结果 - +------+---+-----------+ | y | w | bin(days) | +------+---+-----------+ | 2017 | 1 | 1111100 | +------+---+-----------+ 1 row in set如果将值插入到长度小于m位的BIT(m)列中,MySQL将在位值的左侧使用零填充。 假设第二周的第一天关闭,可以向days列中插入01111100值。 但是,111100的值也可以工作,因为MySQL将使用零填充左侧。 INSERT INTO working_calendar(y,w,days) VALUES(2017,2,B'111100');要查看数据,使用与上述相同的查询: SELECT y, w , bin(days) FROM working_calendar;执行上面查询语句,得到以下结果 - +------+---+-----------+ | y | w | bin(days) | +------+---+-----------+ | 2017 | 1 | 1111100 | | 2017 | 2 | 111100 | +------+---+-----------+ 2 rows in set如您所见,MySQL返回结果之前删除了前导零。 要正确显示可以使用LPAD函数: SELECT y, w , lpad(bin(days),7,'0') FROM working_calendar;执行上面查询语句,得到以下结果 - +------+---+-----------------------+ | y | w | lpad(bin(days),7,'0') | +------+---+-----------------------+ | 2017 | 1 | 1111100 | | 2017 | 2 | 0111100 | +------+---+-----------------------+ 2 rows in set现在工作正常了。 在本教程中,您已经学会了如何使用MySQL BIT类型来存储位值。 上一篇: MySQL数据类型 下一篇: MySQL技巧 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |