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

    二进制字符串类型 长度 长度范围 占用空间
    BIT(M) M 1 <= M <= 64 约为(M + 7)/ 8个字节

    BIT类型,如果没有指定(M),默认是1位。这个1位,表示只能存1位的二进制值。这里(M)是表示二进制的位数,位数最小值为1,最大值为64。

    1. use dbtest12;
    2. CREATE TABLE test_bit1(
    3. f1 BIT,
    4. f2 BIT(5),
    5. f3 BIT(64)
    6. );
    7. DESC test_bit1;
    8. INSERT INTO test_bit1(f1)
    9. VALUES(0),(1);
    10. SELECT *
    11. FROM test_bit1;
    12. # 2表示10,占两位,溢出。
    13. #Data too long for column 'f1' at row 1
    14. INSERT INTO test_bit1(f1)
    15. VALUES(2);
    16. INSERT INTO test_bit1(f2)
    17. VALUES(31);
    18. # 溢出
    19. #Data too long for column 'f2' at row 1
    20. INSERT INTO test_bit1(f2)
    21. VALUES(32);

    注意:
    在向BIT类型的字段中插入数据时,一定要确保插入的数据在BIT类型支持的范围内。使用SELECT命令查询位字段时,可以用BIN()或 HEX()函数进行读取。

    1. SELECT BIN(f1),BIN(f2),HEX(f1),HEX(f2)
    2. FROM test_bit1;
    3. #此时+0以后,可以以十进制的方式显示数据
    4. SELECT f1 + 0, f2 + 0
    5. FROM test_bit1;