AND, OR и NOT

Базовый SQL
≈ 1 мин чтения

Несколько условий можно объединять

Когда одного сравнения недостаточно, условия соединяют логическими операторами. AND требует выполнения обеих частей, OR — хотя бы одной, а NOT инвертирует условие.

SELECT name, price
FROM products
WHERE price >= 1000
  AND available = TRUE;

В результат попадут только доступные товары с ценой не ниже 1000. Если хотя бы одна часть условия не выполняется, строка отбрасывается.

Скобки делают логику явной

SELECT name
FROM products
WHERE (category = 'book' OR category = 'course')
  AND available = TRUE;

Скобки явно показывают, что сначала нас устраивает одна из двух категорий, а затем для выбранных строк дополнительно требуется доступность.

Не полагайся на память о приоритете операторов. AND обычно имеет более высокий приоритет, чем OR. Если выражение смешивает их, скобки почти всегда делают намерение понятнее и уменьшают риск ошибки.