8.6. Логический тип
В PostgreSQL есть стандартный SQL-тип boolean
; см. Таблицу 8.19. Тип boolean
может иметь следующие состояния: «true», «false» и третье состояние, «unknown», которое представляется SQL-значением NULL.
Таблица 8.19. Логический тип данных
Имя | Размер | Описание |
---|---|---|
boolean | 1 байт | состояние: истина или ложь |
Логические константы могут представляться в SQL-запросах следующими ключевыми словами SQL: TRUE
, FALSE
и NULL
.
Функция ввода данных типа boolean
воспринимает следующие строковые представления состояния «true»:
true |
yes |
on |
1 |
и следующие представления состояния «false»:
false |
no |
off |
0 |
Также воспринимаются уникальные префиксы этих строк, например t
или n
. Регистр символов не имеет значения, а пробельные символы в начале и в конце строки игнорируются.
Функция вывода данных типа boolean
всегда выдаёт t
или f
, как показано в Примере 8.2.
Пример 8.2. Использование типа boolean
CREATE TABLE test1 (a boolean, b text); INSERT INTO test1 VALUES (TRUE, 'sic est'); INSERT INTO test1 VALUES (FALSE, 'non est'); SELECT * FROM test1; a | b ---+--------- t | sic est f | non est SELECT * FROM test1 WHERE a; a | b ---+--------- t | sic est
Ключевые слова TRUE
и FALSE
являются предпочтительными (соответствующими стандарту SQL) для записи логических констант в SQL-запросах. Но вы также можете использовать строковые представления, которые допускает синтаксис строковых констант, описанный в Подразделе 4.1.2.7, например, 'yes'::boolean
.
Заметьте, что при анализе запроса TRUE
и FALSE
автоматически считаются значениями типа boolean
, но для NULL
это не так, потому что ему может соответствовать любой тип. Поэтому в некоторых контекстах может потребоваться привести NULL
к типу boolean
явно, например так: NULL::boolean
. С другой стороны, приведение строковой константы к логическому типу можно опустить в тех контекстах, где анализатор запроса может понять, что буквальное значение должно иметь тип boolean
.