8.10. Типы битовых строк#

8.10. Типы битовых строк

8.10. Типы битовых строк

Битовые строки - это строки из 1 и 0. Они могут использоваться для хранения или визуализации битовых масок. Существует два типа битовых данных в SQL: bit(n) и bit varying(n), где n - положительное целое число.

bit Данные типа должны соответствовать длине n точно; попытка сохранить более короткие или более длинные битовые строки является ошибкой. bit varying Данные переменной длины до максимальной длины n; более длинные строки будут отклонены. Запись bit без указания длины эквивалентна bit(1), в то время как bit varying без указания длины означает неограниченную длину.

Примечание

Если явно привести значение битовой строки к типу bit(n), оно будет усечено или дополнено нулями справа до точно n битов, без возникновения ошибки. Аналогично, если явно привести значение битовой строки к типу bit varying(n), оно будет усечено справа, если оно превышает n битов.

См. Раздел 4.1.2.5 для получения информации о синтаксисе констант битовых строк. Доступны битово-логические операторы и функции манипуляции строками; см. Раздел 9.6.

Пример 8.3. Использование типов битовых строк

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


Значение битовой строки требует 1 байт для каждой группы из 8 бит, плюс 5 или 8 байт данных в зависимости от длины строки (но длинные значения могут быть сжаты или перемещены вне строки, как объясняется в Раздел 8.3 для символьных строк).