WHERE
WHERE оставляет в результате только те строки, которые подходят под условие. Это фильтр, как в Excel. Без него запрос возвращает всю таблицу.
В этом уроке работаем с таблицей tutorial.us_housing_units.
Оператор WHERE
Заголовок раздела «Оператор WHERE»Сначала посмотрим на таблицу целиком:
SELECT *FROM tutorial.us_housing_units;Теперь оставим только январь:
SELECT *FROM tutorial.us_housing_unitsWHERE month = 1;Запрос вернёт 47 строк — по одной на каждый год с 1968 по 2014.
Части запроса всегда идут в таком порядке: SELECT, FROM, WHERE.
Как работает WHERE
Заголовок раздела «Как работает WHERE»База проверяет условие для каждой строки:
- условие верно — строка попадает в результат;
- условие неверно — строка отбрасывается.
Строка всегда остаётся целой. Фильтр по одному столбцу убирает строку целиком, со всеми её столбцами. Каждая строка — это одно наблюдение, и её данные не перемешиваются с другими строками.
Условие может использовать столбец, которого нет в SELECT:
SELECT year, westFROM tutorial.us_housing_unitsWHERE month = 1;В условиях можно использовать не только =. Другие операторы сравнения — в следующем уроке, Операторы сравнения.
Практика
Заголовок раздела «Практика»Решайте сами, без AI. Сначала напишите запрос, потом сверьтесь с проверкой, и только потом открывайте решение.
Задание 1
Заголовок раздела «Задание 1»Напишите запрос, который вернёт все строки за 1990 год.
Проверка: 12 строк. В январе 1990 года west = 34.2.
Решение
SELECT *FROM tutorial.us_housing_unitsWHERE year = 1990;Задание 2
Заголовок раздела «Задание 2»Напишите запрос, который вернёт только столбцы year и west для всех строк за июнь (month = 6).
Проверка: 47 строк, 2 столбца. Для 1968 года west = 26.0.
Решение
SELECT year, westFROM tutorial.us_housing_unitsWHERE month = 6;Задание 3
Заголовок раздела «Задание 3»Напишите запрос, который вернёт все строки за 2014 год — последний год в таблице.
Проверка: 12 строк. В строке за декабрь south = 35.3.
Решение
SELECT *FROM tutorial.us_housing_unitsWHERE year = 2014;