Базовая сортировка и фильтрация результатов в SQL

Базовая сортировка и фильтрация данных в SQL являются основными и наиболее часто используемыми операциями при работе с базами данных. Эти операции позволяют отбирать и упорядочивать данные в соответствии с определенными условиями и требованиями.

Сортировка данных

Для сортировки результатов SQL-запросов используется ключевое слово ORDER BY. Оно позволяет упорядочить строки в результирующем наборе данных по одному или нескольким столбцам.

Синтаксис ORDER BY

SELECT column1, column2, ...
FROM table_name
ORDER BY column1 [ASC|DESC], column2 [ASC|DESC], ...;
  • column1, column2, ...: Столбцы, по которым производится сортировка.

  • ASC: Упорядочивание по возрастанию (по умолчанию).

  • DESC: Упорядочивание по убыванию.

Примеры сортировки

  1. Сортировка по одному столбцу

    SELECT employee_id, name, salary
    FROM employees
    ORDER BY salary DESC;

    Этот запрос вернет сотрудников, упорядоченных по зарплате в порядке убывания.

  2. Сортировка по нескольким столбцам

    SELECT employee_id, name, department, salary
    FROM employees
    ORDER BY department ASC, salary DESC;

    Здесь сотрудники сначала сортируются по отделу в порядке возрастания, а затем по зарплате в порядке убывания внутри каждого отдела.

Фильтрация данных

Для фильтрации строк в SQL используется ключевое слово WHERE. Оно позволяет отбирать только те строки, которые соответствуют определенным условиям.

Синтаксис WHERE

SELECT column1, column2, ...
FROM table_name
WHERE condition;
  • condition: Условие, которому должны удовлетворять строки.

Примеры фильтрации

  1. Фильтрация по одному условию

    SELECT employee_id, name, salary
    FROM employees
    WHERE salary > 50000;

    Этот запрос вернет сотрудников с зарплатой больше 50 000.

  2. Фильтрация с использованием нескольких условий

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

    Здесь возвращаются только сотрудники с зарплатой выше 50 000, работающие в отделе продаж.

  3. Фильтрация с использованием оператора IN

    SELECT employee_id, name, department
    FROM employees
    WHERE department IN ('Sales', 'Marketing');

    Этот запрос вернет сотрудников, работающих в отделах продаж или маркетинга.

  4. Фильтрация с использованием оператора BETWEEN

    SELECT employee_id, name, salary
    FROM employees
    WHERE salary BETWEEN 40000 AND 60000;

    Возвращает сотрудников с зарплатой в диапазоне от 40 000 до 60 000 включительно.

  5. Фильтрация с использованием оператора LIKE

    SELECT employee_id, name, email
    FROM employees
    WHERE email LIKE '%@example.com';

    Возвращает сотрудников с адресами электронной почты, заканчивающимися на @example.com.

  6. Фильтрация с использованием оператора IS NULL

    SELECT employee_id, name, phone_number
    FROM employees
    WHERE phone_number IS NULL;

    Этот запрос вернет сотрудников, у которых отсутствует номер телефона.

Комбинирование сортировки и фильтрации

Вы можете комбинировать сортировку и фильтрацию в одном запросе:

SELECT employee_id, name, salary
FROM employees
WHERE salary > 50000
ORDER BY salary DESC;

Этот запрос сначала отфильтрует сотрудников с зарплатой выше 50 000, а затем отсортирует их по зарплате в порядке убывания.

Заключение

Базовая сортировка и фильтрация данных являются основами работы с SQL. Использование ORDER BY позволяет упорядочить результаты, а WHERE — отфильтровать данные по определенным критериям. Эти операции позволяют создавать запросы, которые возвращают нужные данные в нужном формате, что критически важно для эффективного анализа и отчетности.

Last updated