Логические операторы
Чаще всего одного условия мало. Логические операторы помогают собрать из нескольких условий один фильтр. Этот урок — обзор. Каждый оператор разберём отдельно в следующих уроках.
Операторы
Заголовок раздела «Операторы»| Оператор | Что делает | Урок |
|---|---|---|
LIKE | ищет значения по шаблону | LIKE |
IN | оставляет значения из списка | IN |
BETWEEN | оставляет значения из диапазона | BETWEEN |
IS NULL | находит пустые значения | IS NULL |
AND | оба условия верны | AND |
OR | верно хотя бы одно условие | OR |
NOT | условие неверно | NOT |
Таблица Billboard
Заголовок раздела «Таблица Billboard»Для этих уроков нужна таблица tutorial.billboard_top_100_year_end. В ней итоговые годовые чарты Billboard: 100 лучших песен каждого года, с 1956 по 2013.
Столбцы:
| Столбец | Что в нём |
|---|---|
year | год чарта |
year_rank | место песни в конце года |
group_name | полное имя исполнителя, как в чарте. Для совместных песен — несколько имён |
artist | один исполнитель. У песни с гостями несколько строк |
song_name | название песни |
Посмотрим на таблицу. Пока не думайте об ORDER BY, он будет в одном из следующих уроков:
SELECT *FROM tutorial.billboard_top_100_year_endORDER BY year DESC, year_rank;Обратите внимание на 2013 год. У песни Macklemore несколько строк, по одной на каждого исполнителя. Поэтому строк в таблице больше, чем 100 на год.
Практика
Заголовок раздела «Практика»Решайте сами, без AI. Сначала напишите запрос, потом сверьтесь с проверкой, и только потом открывайте решение.
Задание 1
Заголовок раздела «Задание 1»Напишите запрос, который покажет все строки таблицы tutorial.billboard_top_100_year_end за 2013 год.
Проверка: 144 строки в 2013 году. Первое место — Thrift Shop.
Решение
SELECT *FROM tutorial.billboard_top_100_year_endWHERE year = 2013;Задание 2
Заголовок раздела «Задание 2»Напишите запрос, который покажет только столбцы year, year_rank и song_name для песен, занявших первое место в 2005 году.
Проверка: 1 уникальная песня, год 2005, year_rank = 1.
Решение
SELECT DISTINCT year, year_rank, song_nameFROM tutorial.billboard_top_100_year_endWHERE year = 2005 AND year_rank = 1;