Bit String Types

Bit strings are strings of 1's and 0's. They can be used to store or visualize bit masks. There are two SQL bit types: bit(`n`) and bit varying(`n`) , where n is a positive integer.

bit type data must match the length n exactly; it is an error to attempt to store shorter or longer bit strings. bit varying data is of variable length up to the maximum length n; longer strings will be rejected. Writing bit without a length is equivalent to bit(1), while bit varying without a length specification means unlimited length.

Refer to Section 3.1.2.5 for information about the syntax of bit string constants. Bit-logical operators and string manipulation functions are available; seeSection 8.6.

Example Using the Bit String Types

CREATE TABLE test (a BIT(3), b BIT VARYING(5));
    INSERT INTO test VALUES (B'101', B'00');
    INSERT INTO test VALUES (B'10', B'101');
    
     ERROR: bit string length 2 does not match type bit(3)
    
    INSERT INTO test VALUES (B'10'::bit(3), B'101');
    SELECT * FROM test;
    
     a | b
     -----+-----
     101 | 00
     100 | 101

A bit string value requires 1 byte for each group of 8 bits, plus 5 or 8 bytes overhead depending on the length of the string (but long values may be compressed or moved out-of-line, as explained in Section 7.2 for character strings).