Найти в Дзене
SQL для Всех

Оператор WHERE в SQL: Полное руководство

Оператор WHERE в SQL — это один из самых важных и часто используемых операторов, который позволяет фильтровать записи в таблицах на основе определенных условий. Он используется в запросах для ограничения выборки данных, чтобы вернуть только те строки, которые соответствуют заданным критериям. В этой статье мы подробно рассмотрим оператор WHERE, его синтаксис, использование, а также различные примеры.

▎Что такое оператор WHERE?

Оператор WHERE используется для фильтрации строк в результате выполнения SQL-запроса. Он позволяет задать условие, которому должны соответствовать записи, чтобы они были включены в результирующий набор данных. Если условие истинно для строки, она будет возвращена; если ложно — строка будет исключена из результата.

▎Синтаксис оператора WHERE

Общий синтаксис оператора WHERE выглядит следующим образом:

SELECT столбцы

FROM имя_таблицы

WHERE условие;

Где:

• столбцы — это список столбцов, которые вы хотите выбрать.

• имя_таблицы — это таблица, из которой вы хотите извлечь данные.

• условие — это логическое выражение, которое определяет, какие строки будут возвращены.

▎Условия в операторе WHERE

Условия в операторе WHERE могут использовать различные операторы сравнения и логические операторы. Рассмотрим основные из них:

1. Операторы сравнения:

• = (равно)

• != или <> (не равно)

• < (меньше)

• > (больше)

• <= (меньше или равно)

• >= (больше или равно)

2. Логические операторы:

• AND — возвращает TRUE, если оба условия истинны.

• OR — возвращает TRUE, если хотя бы одно из условий истинно.

• NOT — инвертирует логическое значение условия.

-2

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.

-3

▎Заключение

Оператор WHERE является мощным инструментом для фильтрации данных в SQL. Он позволяет задавать условия для извлечения только тех записей, которые соответствуют определенным критериям. Понимание работы оператора WHERE, а также различных условий и операторов сравнения поможет вам эффективно работать с базами данных и получать необходимую информацию. Используя примеры и описанные методы, вы сможете создавать сложные запросы для анализа данных и принятия обоснованных решений на их основе.