Логические операторы
Ключевые слова AND, OR и NOT являются логическими (булевыми) операторами PostgreSQL. Обычно они используются для операций с логическими условиями в командах SQL, особенно в секциях WHERE и HAVING.
В табл. 5.7 приведена сводка результатов, возвращаемых логическими операторами AND, OR и NOT для всех возможных сочетаний операндов (true, false и NULL).
Таблица 5.7. Операторы AND, OR и NOT
а | b | aANDb | aORb | NOT a | NOTb |
true |
true |
true |
true |
false |
false |
true |
false |
false |
true |
false |
true |
true |
NULL |
NULL |
true |
false |
NULL |
false |
false |
false |
false |
true |
true |
false |
NULL |
false |
NULL |
true |
NULL |
NULL |
NULL |
NULL |
NULL |
NULL |
NULL |
В листинге 5.14 приведена пара запросов с ключевыми словами OR и AND, объединяющими условия выборки записей. Первый запрос возвращает информацию о книгах, которые стоят больше 30 долларов или отсутствуют на складе. Как видно из итогового набора, для возвращения записи должно выполняться одно или оба условия.
Во втором запросе те же условия объединяются ключевым словом AND. В результате записи проходят более жесткий отбор, поскольку должны выполняться сразу оба критерия. Итоговый набор состоит всего из одной записи для книги, которая стоит дороже 30 долларов и отсутствует на складе.
Листинг 5.14. Объединение условий с использованием логических операторов
booktown=# SELECT isbn, cost, stock
booktown-# FROM stock
booktown-# WHERE cost > 30
booktown-# OR stock = 0:
Isbn cost | stock
0394900014 23.00 | 0
044100590X | 36.00 | 89
0451198492 | 36.00 | 0
0451457994 17.00 j 0 (4 rows)
booktown=# SELECT Isbn, cost, stock
booktown-# FROM stock
booktown-# WHERE cost > 30
booktown-# AND stock = 0;
Isbn | cost stock
0451198492 36.00 0
(1 row)
Forekc.ru Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий |