JavaRush /Курсы /SQL SELF /Фильтрация данных с помощью операторов сравнения (=, >...

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

SQL SELF
2 уровень , 1 лекция
Открыта

Итак, мы уже знаем как можно использовать команду SELECT. Ну, по крайней мере, мы научились извлекать данные из базы, выбирать нужные столбцы и создавать запросы, которые начинают превращать сырые данные в полезную информацию. Настало время добавить в нашу магическую палитру немного "фильтров". Да, сегодня мы поговорим о фильтрации данных с помощью таких операторов сравнения, как =, >, < и <>.

Когда вы работаете с большими таблицами, то, скорее всего, вам не нужно просматривать абсолютно все данные (разве что вы хотите погрузиться в хаос). Чтобы выделить только нужные строки, в SQL используется ключевое слово WHERE. Оно позволяет задавать условия, которые должна удовлетворять каждая строка, чтобы попасть в результаты запроса. А для этих условий используются операторы сравнения.

Синтаксис фильтрации с WHERE

SELECT колонка1, колонка2
FROM таблица
WHERE условие;

Простая структура: мы добавляем слово WHERE после указания таблицы FROM и пишем конкретное условие, которому должны соответствовать строки.

В качестве примера рассмотрим извлечение данных из таблицы students:

SELECT name, age
FROM students
WHERE age > 18;

Этот запрос выбирает только тех студентов (имена и возраст), которым больше 18 лет. Всё просто, да? Теперь погрузимся в мир операторов сравнения.

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

В SQL есть несколько операторов сравнения, которые помогут вам отфильтровать данные так, как вам нужно. В принципе вы их знаете из математики, но нужно немного уточнить, что да как. Вот список самых часто используемых:

  1. = — Равно.
  2. <> — Не равно (альтернатива: != в некоторых СУБД, но лучше использовать <>, так как это стандарт SQL).
  3. > — Больше.
  4. < — Меньше.
  5. >= — Больше или равно.
  6. <= — Меньше или равно.

Таблица операторов сравнения

Оператор Значение Пример Результат
= Равно age = 20 Возвращает строки, где возраст 20
<> Не равно age <> 20 Возвращает строки, где возраст не равен 20
> Больше age > 18 Возвращает строки, где возраст больше 18
< Меньше age < 18 Возвращает строки, где возраст меньше 18
>= Больше или равно age >= 18 Возвращает строки, где возраст 18 или больше
<= Меньше или равно age <= 18 Возвращает строки, где возраст 18 или меньше

Примеры использования операторов сравнения

Пример 1: Извлечение студентов старше 20 лет

Вот наша таблица:

id name age
1 Alex Lin 22
2 Anna Song 19
3 Otto Art 21
SELECT name, age
FROM students
WHERE age > 20;

Здесь мы задаем условие age > 20, чтобы выбрать только тех студентов, возраст которых превышает 20. Если в таблице есть студент с возрастом 19, увы, он не попадет в результаты.

В нашем случае мы получим такой результат:

name age
Alex Lin 22
Otto Art 21

Студентка Anna Song не попала в выборку, потому что ей только 19.

Пример 2: Извлечение сотрудников с зарплатой не менее 50 000

Вот наша таблица employees:

first_name last_name salary
Julia Kim 48000
Marcus Lee 52000
Anya Patel 50000
Ethan Zhou 61000

А вот наш SQL-запрос:

SELECT first_name, last_name, salary
FROM employees
WHERE salary >= 50000;

Этот запрос вернет всех сотрудников, у которых зарплата равна 50 000 или превышает эту сумму. Равенство тоже подходит!

first_name last_name salary
Marcus Lee 52000
Anya Patel 50000
Ethan Zhou 61000

Пример 3: Извлечение товаров с ценой меньше 100

product_name price
USB Cable 85
Wireless Mouse 150
Notebook 60
Mechanical Pencil 45
SELECT product_name, price
FROM products
WHERE price < 100;

Если у вас электронный магазин, таким запросом вы можете выбрать все товары, которые стоят меньше 100 (например, для рекламной акции "Всё по 99!").

product_name price
USB Cable 85
Notebook 60
Mechanical Pencil 45

Пример 4: Исключение пользователей с определенным id

SELECT id, username
FROM users
WHERE id <> 1;

Этот запрос выбирает всех пользователей, кроме того, у кого id равен 1. Оператор <> говорит "дай мне всех, кто не равен этому значению".

Таблица users:

id username
1 admin
2 elena.gray
3 tom.bishop
4 aria.noble

Результат выполнения запроса:

id username
2 elena.gray
3 tom.bishop
4 aria.noble

Типичные ошибки при фильтрации с помощью операторов сравнения

Когда вы только начинаете писать запросы с фильтрацией, ошибки встречаются часто. Вот пара распространенных случаев, о которых стоит помнить:

Проблема 1: Ошибка в имени столбцов

Если вы неправильно напишете имя столбца в запросе, PostgreSQL выдаст ошибку. Например:

SELECT name, age
FROM students
WHERE ages > 18; -- Ошибка: столбца "ages" не существует

Обязательно проверяйте точные названия столбцов, прежде чем писать запрос.

Проблема 2: Неправильное использование оператора сравнения

Иногда новички могут случайно перепутать операторы. Например:

SELECT name, age
FROM students
WHERE age => 18; -- Ошибка: неверный оператор

Верный синтаксис — >=, а не =>.

Проблема 3: Фильтрация по значениям, которых нет

Если вы пытаетесь отфильтровать строки по значению, которого нет в таблице, запрос выполнится, но вернет пустой результат. Например:

SELECT name
FROM students
WHERE age = 999; -- Результат: 0 строк

Это не синтаксическая ошибка, но она может сбивать с толку, если вы ожидаете увидеть данные.

Практическое применение

Фильтрация данных с помощью операторов сравнения используется в самых разных сценариях:

  • Анализ данных: например, чтобы выбрать всех клиентов, потративших больше 10 000 рупий.
  • Отчеты: выбор сотрудников с зарплатой выше среднего.
  • Мониторинг: отслеживание пользователей, которые не были активны в течение последнего месяца.

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

2
Задача
SQL SELF, 2 уровень, 1 лекция
Недоступна
Выбор студентов, которым больше 18 лет
Выбор студентов, которым больше 18 лет
2
Задача
SQL SELF, 2 уровень, 1 лекция
Недоступна
Поиск товаров с низкой ценой
Поиск товаров с низкой ценой
Комментарии (2)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
skyvxl Уровень 9
22 августа 2025
мы уже знаем как можно ипользовать команду
Anemon Уровень 13 Expert
20 июля 2025
Пока что не так уж сложно. Очень радует что существует аж 60 уровней с лекциями.)