Условный оператор WHERE
Ситуация, когда требуется сделать выборку по определённому условию, встречается очень часто. Для этого в операторе SELECT существует оператор WHERE, после которого следуют условия для ограничения строк. Если запись удовлетворяет этому условию, то попадает в результат, иначе отбрасывается.
Общая структура запроса с оператором WHERE
SELECT [DISTINCT] поля_таблиц FROM наименование_таблицы WHERE условие_на_ограничение_строк [логический_оператор другое_условие_на_ограничение_строк];
Например, запрос с использованием оператора WHERE может выглядеть следующим образом:
SELECT * FROM Student WHERE first_name = "Grigorij" AND YEAR(birthday) > 2000;
В нем используются:
- два оператора сравнения
first_name = "Grigorij" и YEAR(birthday) > 2000; - один логический оператор AND
Как результат, в выборке мы получаем данные студентов, которые имеют имя «Grigorij» и в то же время чей год рождения больше 2000.
Операторы сравнения
Операторы сравнения служат для сравнения 2 выражений, результатом которого может являться:
- true (что эквивалентно 1)
- false (что эквивалентно 0)
- NULL
Результатом сравнения любого значения с NULL является NULL. Исключением является оператор эквивалентности.
Попробуйте выполнить запрос и самостоятельно поиграться с этими операторами в песочнице:
SELECT 2 = 1, 'a' = 'a', NULL <=> NULL, 2 <> 2, 3 < 4, 10 <= 10, 7 > 1, 8 >= 10;
Логические операторы
Логические операторы необходимы для связывания операторов сравнения.
Давайте для примера выведем все полёты, которые были совершены на самолёте «Boeing», но, при этом, вылет был не из Лондона:
SELECT * FROM Trip WHERE plane = 'Boeing' AND NOT town_from = 'London';