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 дозволяє швидко витягати потрібні дані з величезних таблиць, і оператори порівняння — це перший крок на цьому шляху.

Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ