Битовые строки — это строки которые состоят из единиц и нулей.
Они могут использоваться для хранения визуальных битовых масок.
В SQL существует два битовых типа:
bit(n) и bit
varying(n), где
n является положительным целым числом.
Тип данных bit должен точно соответствовать длине
n; попытка записи более короткого или
более длинного значения битовой строки приведёт к ошибке.
Данные типа bit varying имеют переменную длину,
максимальное значение которой n;
более длинные строки будут отвергнуты. Написание
bit без длины, эквивалентно bit(1),
в то время как bit varying без указания длины
означает неограниченную длину.
Note: Если производится явное приведение значения битовой строки к
типу bit(n), то это значение будет
или усечено, или дополнено справа нулями до точной длины в
n без генерации ошибки. Похожим образом,
если производится явное приведение значения битовой строки к
типу bit varying(n), то это
значение будет усечено справа, если оно длиной больше
чем n бит.
Информацию о синтаксисе битово-строчных констант смотрите в
Section 4.1.2.5. Доступны битово-логические
операторы и функции манипуляции со строками; см.
Section 9.6.
Example 8-7. Использование битовых строк
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');
ОШИБКА: длина 2 битовой строки не совпадает с типом bit(3)
INSERT INTO test VALUES (B'10'::bit(3), B'101');
SELECT * FROM test;
a | b
-----+-----
101 | 00
100 | 101
Значение битовой строки требует 1 байт для каждой группы из 8 битов
плюс 5 или 8 байт дополнительно, в зависимости от длины данной строки
(но длинные значения могут быть сжаты или перемещены во внешнее место
хранения, как описано в Section 8.3 для символных
строк).