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 для символьных строк).