Документация по PostgreSQL 9.1.1 | ||||
---|---|---|---|---|
Prev | Fast Backward | Chapter 8. Типы данных | Fast Forward | Next |
Битовые строки — это строки которые состоят из единиц и нулей. Они могут использоваться для хранения визуальных битовых масок. В 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-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'); ОШИБКА: длина 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 для символных строк).