8.6. ÐогиÑеÑкий Ñип
Ð Postgres Pro еÑÑÑ ÑÑандаÑÑнÑй 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.