WHERE

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

WHERE фильтрует строки

WHERE задаёт условие, которому должна соответствовать строка, чтобы попасть в результат запроса. Без него обычный SELECT рассматривает все строки таблицы.

SELECT id, name, price
FROM products
WHERE price > 1000;

Для каждой строки база проверяет условие price > 1000. В результат попадают только те строки, для которых условие выполняется.

WHERE не меняет данные

Фильтрация влияет только на набор строк, возвращаемый запросом. Сами записи в таблице остаются прежними.

SELECT name
FROM users
WHERE active = TRUE;

Такой запрос возвращает имена активных пользователей, но не изменяет значение active ни у одной строки.

Условие WHERE должно описывать именно строки, которые нужно оставить. Полезно читать запрос буквально: «взять данные из таблицы и оставить строки, где условие истинно». Такой способ хорошо работает и когда условия станут сложнее.