Фильтрация данных: WHERE, операторы сравнения (=, <>, >, <, >=, <=)

Что такое фильтрация данных и зачем она нужна? 🔍

Представьте, что у вас есть гигантский склад с тысячами коробок. Вам нужна всего одна коробка с определенной маркировкой. Фильтрация данных в SQL — это именно тот инструмент, который помогает найти нужные "коробки" (строки) в вашей базе данных!

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

Синтаксис WHERE — основа основ 📐

Оператор WHERE используется в связке с SELECT (и другими DML-операторами). Вот его базовый синтаксис:

SELECT column1, column2, ...
FROM table_name
WHERE condition;

Где condition — это логическое выражение, которое может включать:

  • Операторы сравнения (=, <>, >, <, >=, <=)
  • Логические операторы (AND, OR, NOT)
  • Специальные операторы (LIKE, IN, BETWEEN)

Сегодня мы фокусируемся именно на операторах сравнения — фундаменте фильтрации!

Операторы сравнения в действии ⚖️

Давайте разберём каждый оператор на конкретных примерах. Представим, что у нас есть таблица employees с данными о сотрудниках:

CREATE TABLE employees (
    id INT PRIMARY KEY,
    name VARCHAR(100),
    department VARCHAR(50),
    salary DECIMAL(10, 2),
    hire_date DATE
);

1. Равно (=) — точное совпадение

Найдем всех сотрудников из отдела 'Marketing':

SELECT name, salary
FROM employees
WHERE department = 'Marketing';

2. Не равно (<>) — исключение значений

Выберем всех сотрудников, которые НЕ работают в 'IT':

SELECT name, department
FROM employees
WHERE department <> 'IT';

💡 В некоторых СУБД (например, MySQL) можно также использовать != вместо <> — результат будет идентичным.

3. Больше (>) и Меньше (<) — числовые диапазоны

Найдем сотрудников с зарплатой выше 50000:

SELECT name, salary
FROM employees
WHERE salary > 50000;

А теперь — тех, кто получает меньше 40000:

SELECT name, salary
FROM employees
WHERE salary < 40000;

4. Больше или равно (>=) и Меньше или равно (<=) — включительные границы

Выберем сотрудников с зарплатой от 40000 до 60000 (включительно):

SELECT name, salary
FROM employees
WHERE salary >= 40000 AND salary <= 60000;

Комбинирование условий 🧩

Настоящая мощь WHERE раскрывается при комбинировании условий! Давайте найдем всех сотрудников из отдела 'Sales' с зарплатой выше 45000:

SELECT name, department, salary
FROM employees
WHERE department = 'Sales' AND salary > 45000;

А теперь — сотрудников либо из 'HR', либо с зарплатой менее 35000:

SELECT name, department, salary
FROM employees
WHERE department = 'HR' OR salary < 35000;

Особенности работы с датами 📅

Фильтрация по датам — частая задача. Найдем сотрудников, принятых на работу после 1 января 2020 года:

SELECT name, hire_date
FROM employees
WHERE hire_date > '2020-01-01';

💡 Обратите внимание на формат даты — 'YYYY-MM-DD' является стандартом в SQL.

Частые ошибки и как их избежать 🚧

  1. Путаница с кавычками: для текстовых значений используем одинарные кавычки ('Marketing'), для чисел — без кавычек (50000).

  2. Регистр символов: в некоторых СУБД сравнение строк чувствительно к регистру. 'marketing' и 'Marketing' могут считаться разными значениями!

  3. NULL-значения: операторы сравнения не работают с NULL. Для проверки на NULL используйте IS NULL или IS NOT NULL.

Практика — лучший учитель! 💻

Давайте закрепим знания на более сложном примере. Найдем всех сотрудников: - Из отделов 'Finance' или 'Operations' - С зарплатой от 40000 до 80000 - Принятых на работу после 2018 года

SELECT name, department, salary, hire_date
FROM employees
WHERE (department = 'Finance' OR department = 'Operations')
  AND salary BETWEEN 40000 AND 80000
  AND hire_date > '2018-12-31';

Обратите внимание на:

  • Группировку условий скобками
  • Использование BETWEEN для диапазона (альтернатива >= AND <=)
  • Четкое указание даты

Что дальше? 🚀

Теперь, когда вы освоили базовые операторы сравнения, вы готовы к более сложным условиям фильтрации! В следующих уроках мы разберём:

  • Шаблонный поиск с LIKE
  • Работу с множествами (IN, NOT IN)
  • Специальные операторы (BETWEEN, IS NULL)

Попробуйте применить эти знания к своим данным — создавайте запросы, экспериментируйте с условиями, и вы быстро станете мастером фильтрации!

Скрыть рекламу навсегда

🎥 YouTube: программирование простым языком

Канал, где я спокойно и по шагам объясняю сложные темы — без заумных терминов и лишней теории.

Подходит, если раньше «не заходило», но хочется наконец понять.

▶️ Смотреть курсы на YouTube