В прошлом уроке SELECT * FROM users показывал нам всех пользователей сразу. Но что, если их миллион, а тебе нужны только те, кто из Москвы? Показывать всех и искать вручную — глупо. Нужен способ сказать базе: «покажи не всё, а только подходящее». Этот способ — слово WHERE.
WHERE — это условие
WHERE добавляет к запросу условие. Оно работает как фильтр: база проверяет каждую строку и оставляет только те, что условию подходят. Вот пример:
SELECT * FROM users WHERE city = 'Москва'
Прочитаем вслух: «выбрать всё из пользователей, где город равен Москве». То есть — «покажи только пользователей из Москвы». Все остальные строки база просто не покажет.
Как читать условие
Условие после WHERE — это сравнение. В нашем примере оно такое:
city— столбец, который проверяем (город),=— знак «равно»,'Москва'— значение, которое ищем (в кавычках, потому что это текст).
Вместе: «оставь строки, где в столбце city написано Москва». Поменяешь значение на 'Казань' — и получишь пользователей из Казани. Логика та же, меняется только условие.
Это уже знакомо
Помнишь уровень про условия — слово «если»? Там мы говорили: «если число больше десяти — сделай вот это». WHERE работает по той же идее: «покажи строку, если она подходит под условие». Просто здесь условие применяется не к одному значению, а к каждой строке таблицы по очереди.
Текст в условии всегда бери в кавычки: 'Москва', 'Казань'. А вот числа кавычки не требуют — например, WHERE age = 18 пишется без них.
Попробуй
Задания в терминале нет — закрепим в уме. Представь таблицу books со столбцом автор. Как написать запрос, который покажет только книги Пушкина? (Подсказка: SELECT * FROM books WHERE автор = 'Пушкин'.) Ты только что освоил главный инструмент любого запроса — умение фильтровать данные по условию. С этого начинается почти вся работа с базами.