Занятие 02. Оператор WHERE. Специальное значение NULL
⚡ Кратко: суть темы
Занятие учит фильтровать строки в SQL-запросах с помощью оператора WHERE. Мы разберём операторы сравнения, логические операторы AND/OR/NOT, поиск по маске LIKE, множественный выбор IN и BETWEEN, а также правила работы со специальным значением NULL.
WHEREидёт послеFROMи отбирает только подходящие строки.- Операторы сравнения:
=,<>/!=,<,<=,>,>=. LIKEиспользует%(любые символы) и_(один символ).NULL— отсутствие значения; для проверки используются толькоIS NULLиIS NOT NULL.
Что запомнить: NULL = NULL не истинно — никогда не сравнивайте NULL обычными операторами.
Частая ошибка: писать WHERE column = NULL вместо WHERE column IS NULL.
📝 Задания
База данных: northwind. Таблицы уточнены в каждом задании.
Условия WHERE
- Выберите все строки из
order_details, гдеunit_priceпревышает 20. - Выберите
order_idизorder_details, гдеproduct_id = 43иstatus_id = 2. - Выберите строки из
order_details, гдеquantity <= 15илиunit_price = 15. - Выберите
inventory_idизorder_detailsдля всех заказов, кроме тех, гдеorder_idравен 46 или 79. - Выберите строки из
order_details, гдеunit_price > 9и (order_id = 30илиstatus_id = 1).
Поиск по маске
- Выберите всех сотрудников из
employees, чьи имена начинаются на буквуA. - Выберите сотрудников из
employees, живущих в городах, названия которых заканчиваются наmond. - Выберите домашние номера сотрудников из
employees, у которых в заметках (notes) встречается словоFrench, а в фамилии (last_name) есть букваk.
IN и BETWEEN
- Выберите строки из
orders, гдеshipping_feeот 10 до 15 включительно. - Выберите
ship_nameизordersдля городов отгрузкиChicagoиMiami.
NULL
- Найдите строки в
orders, где не указанаshipped_date. - Выберите ID заказов из
orders, где отсутствуют иshipped_date, иshipper_id.
Проверка понимания
Выберите один вариант ответа. После клика правильный ответ подсветится зелёным.
Вопрос 1
Как правильно проверить NULL в SQL?
Вопрос 2
Для чего используется WHERE?
Вопрос 3
Что делает SELECT?
Вопрос 4
Почему в SQL важен явный список столбцов?
Вопрос 5
Как лучше форматировать сложный SQL-запрос?
Вопрос 6
Что означает NULL?
Вопрос 7
Почему запросы стоит проверять на маленькой выборке?