CodeGym /Kursy /SQL SELF /Filtrowanie danych za pomocą operatorów porównania (=, &g...

Filtrowanie danych za pomocą operatorów porównania (=, >, <, <>)

SQL SELF
Poziom 2, Lekcja 1
Dostępny

No dobra, już wiemy jak używać komendy SELECT. Przynajmniej nauczyliśmy się wyciągać dane z bazy, wybierać potrzebne kolumny i tworzyć zapytania, które zaczynają zamieniać surowe dane w coś przydatnego. Czas dodać do naszej magicznej palety trochę "filtrów". Tak, dziś pogadamy o filtrowaniu danych za pomocą takich operatorów porównania jak =, >, < i <>.

Kiedy pracujesz z dużymi tabelami, raczej nie chcesz oglądać wszystkich danych (chyba że masz ochotę na chaos). Żeby wybrać tylko te wiersze, które Cię interesują, w SQL używamy słowa kluczowego WHERE. Pozwala ono ustalić warunki, które każdy wiersz musi spełnić, żeby trafić do wyników zapytania. A do tych warunków używamy operatorów porównania.

Składnia filtrowania z WHERE

SELECT kolumna1, kolumna2
FROM tabela
WHERE warunek;

Prosta struktura: dodajemy słowo WHERE po FROM i piszemy konkretne warunki, które muszą spełniać wiersze.

Na przykładzie wyciągniemy dane z tabeli students:

SELECT name, age
FROM students
WHERE age > 18;

To zapytanie wybiera tylko tych studentów (imiona i wiek), którzy mają więcej niż 18 lat. Proste, nie? Teraz zanurkujmy w świat operatorów porównania.

Podstawowe operatory porównania

W SQL mamy kilka operatorów porównania, które pomogą Ci przefiltrować dane tak, jak chcesz. W sumie znasz je z matmy, ale warto doprecyzować, jak to działa w SQL. Oto lista najczęściej używanych:

  1. = — Równe.
  2. <> — Różne (alternatywa: != w niektórych bazach, ale lepiej używać <>, bo to standard SQL).
  3. > — Większe.
  4. < — Mniejsze.
  5. >= — Większe lub równe.
  6. <= — Mniejsze lub równe.

Tabela operatorów porównania

Operator Znaczenie Przykład Wynik
= Równe age = 20 Zwraca wiersze, gdzie wiek to 20
<> Różne age <> 20 Zwraca wiersze, gdzie wiek nie jest równy 20
> Większe age > 18 Zwraca wiersze, gdzie wiek jest większy niż 18
< Mniejsze age < 18 Zwraca wiersze, gdzie wiek jest mniejszy niż 18
>= Większe lub równe age >= 18 Zwraca wiersze, gdzie wiek to 18 lub więcej
<= Mniejsze lub równe age <= 18 Zwraca wiersze, gdzie wiek to 18 lub mniej

Przykłady użycia operatorów porównania

Przykład 1: Wyciąganie studentów starszych niż 20 lat

Oto nasza tabela:

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

Tutaj ustawiamy warunek age > 20, żeby wybrać tylko tych studentów, których wiek przekracza 20. Jeśli w tabeli jest student z wiekiem 19, niestety, nie pojawi się w wynikach.

W naszym przypadku dostaniemy taki wynik:

name age
Alex Lin 22
Otto Art 21

Studentka Anna Song nie pojawiła się w wynikach, bo ma tylko 19 lat.

Przykład 2: Wyciąganie pracowników z pensją co najmniej 50 000

Oto nasza tabela employees:

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

A oto nasze zapytanie SQL:

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

To zapytanie zwróci wszystkich pracowników, którzy mają pensję równą 50 000 lub większą od tej kwoty. Równość też się liczy!

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

Przykład 3: Wyciąganie produktów z ceną mniejszą niż 100

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

Jeśli masz sklep internetowy, takim zapytaniem możesz wybrać wszystkie produkty, które kosztują mniej niż 100 (np. na promocję "Wszystko za 99!").

product_name price
USB Cable 85
Notebook 60
Mechanical Pencil 45

Przykład 4: Wykluczanie użytkowników z konkretnym id

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

To zapytanie wybiera wszystkich użytkowników oprócz tego, którego id to 1. Operator <> mówi "daj mi wszystkich, którzy nie mają tej wartości".

Tabela users:

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

Wynik zapytania:

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

Typowe błędy przy filtrowaniu za pomocą operatorów porównania

Kiedy dopiero zaczynasz pisać zapytania z filtrowaniem, błędy zdarzają się często. Oto kilka popularnych przypadków, o których warto pamiętać:

Problem 1: Błąd w nazwie kolumny

Jeśli źle wpiszesz nazwę kolumny w zapytaniu, PostgreSQL wyrzuci błąd. Na przykład:

SELECT name, age
FROM students
WHERE ages > 18; -- Błąd: kolumna "ages" nie istnieje

Koniecznie sprawdzaj dokładne nazwy kolumn zanim napiszesz zapytanie.

Problem 2: Złe użycie operatora porównania

Czasem początkujący mogą przypadkowo pomylić operatory. Na przykład:

SELECT name, age
FROM students
WHERE age => 18; -- Błąd: nieprawidłowy operator

Poprawna składnia to >=, a nie =>.

Problem 3: Filtrowanie po wartościach, których nie ma

Jeśli próbujesz przefiltrować wiersze po wartości, której nie ma w tabeli, zapytanie się wykona, ale zwróci pusty wynik. Na przykład:

SELECT name
FROM students
WHERE age = 999; -- Wynik: 0 wierszy

To nie jest błąd składniowy, ale może być mylące, jeśli spodziewasz się zobaczyć dane.

Zastosowanie w praktyce

Filtrowanie danych za pomocą operatorów porównania przydaje się w różnych sytuacjach:

  • Analiza danych: np. żeby wybrać wszystkich klientów, którzy wydali więcej niż 10 000 rupii.
  • Raporty: wybieranie pracowników z pensją powyżej średniej.
  • Monitoring: śledzenie użytkowników, którzy nie byli aktywni przez ostatni miesiąc.

SQL pozwala Ci szybko wyciągać potrzebne dane z ogromnych tabel, a operatory porównania to pierwszy krok na tej drodze.

2
Zadanie
SQL SELF, poziom 2, lekcja 1
Niedostępne
Wybór studentów, którzy mają więcej niż 18 lat
Wybór studentów, którzy mają więcej niż 18 lat
2
Zadanie
SQL SELF, poziom 2, lekcja 1
Niedostępne
Wyszukiwanie produktów z niską ceną
Wyszukiwanie produktów z niską ceną
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION