AND и OR в SQL: как правильно соединять условия
Когда мы работаем с базой данных, почти всегда хотим не просто что-то выбрать, а применить несколько условий сразу. Например: выбрать всех клиентов старше 18 лет и с активной подпиской.
И здесь на помощь приходят два основных логических оператора: AND и OR.
Что делают AND и OR
- AND — «и». Все условия должны быть выполнены одновременно.Пример: выбрать из холодильника молоко и яйца, чтобы приготовить омлет:
(Да, в реальности одной строки с молоком и яйцом не будет, но идея ясна: оба условия должны выполняться вместе.)
- OR — «или». Достаточно, чтобы выполнено было хотя бы одно условие.Пример: выбрать продукты, которые нужно купить или молоко, или яйца:
Где могут использоваться
Эти операторы обычно используют в блоке WHERE, чтобы фильтровать данные.Также можно применять их в:
- HAVING — фильтрация агрегатов после GROUP BY
- JOIN ON — комбинирование условий соединения таблиц
Пример с HAVING:
Особенности и нюансы:
- Порядок выполнения важенAND имеет более высокий приоритет, чем OR.Если смешиваете их, всегда используйте скобки для точного порядка:
AND «сжимает» результат, OR «расширяет» результат
AND оставляет меньше строк, OR — больше
Частые ошибки
- Забыли скобки и получили слишком большой или слишком маленький результат
- Использовали AND там, где нужен OR (или наоборот)
- Смешали NULL значения: NULL AND TRUE и NULL OR TRUE могут вести себя неожиданно
Представим, что мама проверяет холодильник:
- У неё есть список продуктов, которые могут испортиться: молоко, яйца, йогурт
- Она хочет приготовить что-то, если и молоко, и яйца в наличии → AND
- Она хочет перекусить, если есть молоко или йогурт → OR
В SQL это выглядит так:
AND и OR — это простые, но мощные инструменты фильтрации. Правильное использование скобок и понимание приоритета операторов помогает избежать ошибок и выбирать точно те данные, которые нужны.
А в своем канале На связи: SQL я публикую информацию с особенностями и нюансами в языке SQL, разбираю аналитические запросы и подходы работы с данными. Канал создала недавно с нулем подписчиков, но там уже есть интересная информация для работы аналитиков. Подписывайся!