BIT类型中存储的是二进制值,类似010110。
| 二进制字符串类型 | 长度 | 长度范围 | 占用空间 | 
|---|---|---|---|
| BIT(M) | M | 1 <= M <= 64 | 约为(M + 7)/ 8个字节 | 
BIT类型,如果没有指定(M),默认是1位。这个1位,表示只能存1位的二进制值。这里(M)是表示二进制的位数,位数最小值为1,最大值为64。
use dbtest12;CREATE TABLE test_bit1(f1 BIT,f2 BIT(5),f3 BIT(64));DESC test_bit1;INSERT INTO test_bit1(f1)VALUES(0),(1);SELECT *FROM test_bit1;# 2表示10,占两位,溢出。#Data too long for column 'f1' at row 1INSERT INTO test_bit1(f1)VALUES(2);INSERT INTO test_bit1(f2)VALUES(31);# 溢出#Data too long for column 'f2' at row 1INSERT INTO test_bit1(f2)VALUES(32);
注意:
在向BIT类型的字段中插入数据时,一定要确保插入的数据在BIT类型支持的范围内。使用SELECT命令查询位字段时,可以用BIN()或 HEX()函数进行读取。
SELECT BIN(f1),BIN(f2),HEX(f1),HEX(f2)FROM test_bit1;#此时+0以后,可以以十进制的方式显示数据SELECT f1 + 0, f2 + 0FROM test_bit1;
