Оператор WHERE в SQL — это один из самых важных и часто используемых операторов, который позволяет фильтровать записи в таблицах на основе определенных условий. Он используется в запросах для ограничения выборки данных, чтобы вернуть только те строки, которые соответствуют заданным критериям. В этой статье мы подробно рассмотрим оператор WHERE, его синтаксис, использование, а также различные примеры.
▎Что такое оператор WHERE?
Оператор WHERE используется для фильтрации строк в результате выполнения SQL-запроса. Он позволяет задать условие, которому должны соответствовать записи, чтобы они были включены в результирующий набор данных. Если условие истинно для строки, она будет возвращена; если ложно — строка будет исключена из результата.
▎Синтаксис оператора WHERE
Общий синтаксис оператора WHERE выглядит следующим образом:
SELECT столбцы
FROM имя_таблицы
WHERE условие;
Где:
• столбцы — это список столбцов, которые вы хотите выбрать.
• имя_таблицы — это таблица, из которой вы хотите извлечь данные.
• условие — это логическое выражение, которое определяет, какие строки будут возвращены.
▎Условия в операторе WHERE
Условия в операторе WHERE могут использовать различные операторы сравнения и логические операторы. Рассмотрим основные из них:
1. Операторы сравнения:
• = (равно)
• != или <> (не равно)
• < (меньше)
• > (больше)
• <= (меньше или равно)
• >= (больше или равно)
2. Логические операторы:
• AND — возвращает TRUE, если оба условия истинны.
• OR — возвращает TRUE, если хотя бы одно из условий истинно.
• NOT — инвертирует логическое значение условия.
3. Другие операторы:
• BETWEEN ... AND ... — используется для проверки значений в заданном диапазоне.
• LIKE — используется для поиска по шаблону (например, с подстановочными знаками).
• IN (...) — проверяет, содержится ли значение в заданном списке.
▎Примеры использования оператора WHERE
Рассмотрим таблицу employees, которая содержит информацию о сотрудниках:
| id | name | age | department | salary |
|----|-----------|-----|------------|--------|
| 1 | Alice | 30 | HR | 60000 |
| 2 | Bob | 25 | IT | 70000 |
| 3 | Charlie | 35 | IT | 80000 |
| 4 | David | 28 | Sales | 50000 |
| 5 | Eva | 40 | HR | 90000 |
▎Пример 1: Фильтрация по одному условию
Если вам нужно выбрать сотрудников из отдела IT, вы можете использовать следующий запрос:
SELECT *
FROM employees
WHERE department = 'IT';
Этот запрос вернет строки, где значение в столбце department равно 'IT'.
▎Пример 2: Фильтрация по нескольким условиям с AND
Чтобы выбрать сотрудников старше 30 лет и работающих в IT, используйте оператор AND:
SELECT *
FROM employees
WHERE age > 30 AND department = 'IT';
Этот запрос вернет только тех сотрудников, которые соответствуют обоим условиям.
▎Пример 3: Фильтрация с OR
Если вы хотите выбрать сотрудников из отдела HR или Sales, используйте оператор OR:
SELECT *
FROM employees
WHERE department = 'HR' OR department = 'Sales';
Этот запрос вернет всех сотрудников, работающих в HR или Sales.
▎Пример 4: Использование NOT
Чтобы выбрать сотрудников, не работающих в HR, можно использовать оператор NOT:
SELECT *
FROM employees
WHERE NOT department = 'HR';
Этот запрос вернет всех сотрудников, кроме тех, кто работает в HR.
▎Пример 5: Использование BETWEEN
Для выбора сотрудников с зарплатой в диапазоне от 50000 до 80000 можно использовать оператор BETWEEN:
SELECT *
FROM employees
WHERE salary BETWEEN 50000 AND 80000;
Этот запрос вернет всех сотрудников с зарплатой от 50000 до 80000 включительно.
▎Пример 6: Использование LIKE
Если вам нужно найти сотрудников, чьи имена начинаются на букву 'A', можно использовать оператор LIKE:
SELECT *
FROM employees
WHERE name LIKE 'A%';
Здесь % является подстановочным знаком, который обозначает любое количество символов.
▎Пример 7: Использование IN
Для выбора сотрудников с конкретными зарплатами можно использовать оператор IN:
SELECT *
FROM employees
WHERE salary IN (60000, 70000);
Этот запрос вернет сотрудников с зарплатами 60000 и 70000.
▎Комбинирование условий
Вы можете комбинировать различные условия в одном запросе. Например, чтобы выбрать сотрудников из отдела IT или HR с зарплатой выше 60000, можно написать:
SELECT *
FROM employees
WHERE (department = 'IT' OR department = 'HR') AND salary > 60000;
Этот запрос вернет всех сотрудников из IT или HR с зарплатой выше 60000.
▎Заключение
Оператор WHERE является мощным инструментом для фильтрации данных в SQL. Он позволяет задавать условия для извлечения только тех записей, которые соответствуют определенным критериям. Понимание работы оператора WHERE, а также различных условий и операторов сравнения поможет вам эффективно работать с базами данных и получать необходимую информацию. Используя примеры и описанные методы, вы сможете создавать сложные запросы для анализа данных и принятия обоснованных решений на их основе.