PostgreSQL предоставляет стандартный тип SQLboolean ; Тип booleanможет иметь несколько состояний: “true”, “false”, и третье состояние, “unknown”, которое представлено нулевым значением SQL .

ИмяРазмер хранилищаОписание
boolean1 байтсостояние истинное или ложное

Логические константы могут быть представлены в SQL-запросах ключевыми словами SQL TRUE, FALSEи NULL.

Функция ввода типа данных для type booleanпринимает эти строковые представления для состояния « true » :

true
yes
on
1

и эти представления для « ложного » состояния:

false
no
off
0

Также допускаются уникальные префиксы этих строк, например tили n. Начальные или конечные пробелы игнорируются, и регистр не имеет значения.

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. Но вы также можете использовать строковые представления, следуя общему синтаксису констант строкового литерала, описанному. Обратите внимание, что синтаксический анализатор автоматически понимает, что TRUEи FALSEимеют тип boolean, но это не так NULL, потому что это может иметь любой тип. Таким образом, в некоторых контекстах вам может потребоваться явное приведение NULL, booleanнапример NULL::boolean. И наоборот, приведение может быть опущено из логического значения строкового литерала в контекстах, где синтаксический анализатор может сделать вывод, что литерал должен быть типа boolean.