Битовые строки — это строки, состоящие из нулей и единиц. Они могут применяться для хранения или визуального представления битовых масок. В SQL существуют два битовых типа:
bit( и n)bit
varying(, где
n)n является положительным целым числом.
bit данные типа должны соответствовать длине
n в точности; попытка сохранения более коротких или длинных битовых строк приведет к ошибке. bit varying данные имеют переменную длину, не превышающую максимальное значение
n; строки большей длины будут отклонены.
Указание типа bit без указания параметра длины эквивалентно
bit(1), в то время как bit varying без указания длины означает неограниченную длину.
Если значение битовой строки явно приводится к типу
bit(, оно будет усечено или
дополнено нулями справа до достижения длины ровно в n)n бит,
без генерации ошибки. Аналогично,
если значение битовой строки явно приводится к типу
bit varying(, оно будет усечено справа, если его длина превышает n)n бит.
Обратитесь к Раздел 2.1.1.2.5 для получения информации о синтаксисе констант битовых строк. Доступны поразрядные логические операции и функции для работы со строками; см. Раздел 2.6.6.
Пример 2.5.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: длина битовой строки 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 байт накладных расходов в зависимости от длины строки (однако длинные значения могут быть сжаты или вынесены за пределы основной таблицы, как описано в Раздел 2.5.3 (для символьных строк).