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(
and n
)bit
varying(
, where
n
)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.
If one explicitly casts a bit-string value to
bit(
, it will be truncated or
zero-padded on the right to be exactly n
)n
bits,
without raising an error. Similarly,
if one explicitly casts a bit-string value to
bit varying(
, it will be truncated
on the right if it is more than n
)n
bits.
Refer to Section 5.1.2.6 for information about the syntax of bit string constants. Bit-logical operators and string manipulation functions are available; see Section 10.6.
Example 9.3. 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 9.2 for character strings).