Zapytanie SELECT: Filtrowanie danych (LIKE, IN, BETWEEN)

Podczas pracy z bazą danych często potrzebujemy pobierać tylko określone rekordy spełniające konkretne warunki. W MySQL do filtrowania danych w zapytaniach `SELECT` wykorzystujemy klauzulę WHERE w połączeniu z operatorami LIKE, IN oraz BETWEEN. Pozwalają one na wyszukiwanie pasujących wartości, określonych zakresów i zestawów danych.


📌 Operator LIKE – Wyszukiwanie wzorców

Zastosowanie

  • LIKE pozwala wyszukiwać rekordy pasujące do określonego wzorca.
  • Stosujemy symbole wieloznaczne:
    • % – zastępuje dowolną liczbę znaków.
    • _ – zastępuje dokładnie jeden znak.

✅ Podstawowa składnia:

Przykład
-- Podstawowa składnia
SELECT kolumny FROM tabela
WHERE kolumna LIKE 'wzorzec';

-- Znalezienie użytkowników, których imię zaczyna się na "A"
SELECT * FROM uzytkownicy
WHERE imie LIKE 'A%';

-- Znalezienie e-maili w domenie Gmail
SELECT * FROM uzytkownicy
WHERE email LIKE '%@gmail.com';

-- Znalezienie użytkowników, których nazwisko ma dokładnie 6 znaków
SELECT * FROM uzytkownicy
WHERE nazwisko LIKE '______';

📌 Operator IN – Szukanie wartości w zbiorze

Zastosowanie

  • Operator IN pozwala sprawdzić, czy wartość w kolumnie znajduje się w podanym zbiorze.
  • Jest bardziej czytelny i wydajniejszy niż wielokrotne użycie `OR`.

Przykłady użycia:

  • Wyszukiwanie użytkowników z wybranych miast.
  • Pobieranie zamówień o określonych statusach.
  • Filtrowanie produktów należących do konkretnych kategorii.
Przykład
-- Podstawowa składnia
SELECT kolumny FROM tabela
WHERE kolumna IN (wartość1, wartość2, wartość3);

-- Pobranie użytkowników z określonych miast
SELECT * FROM uzytkownicy
WHERE miasto IN ('Warszawa', 'Kraków', 'Wrocław');

-- Pobranie zamówień o określonych statusach
SELECT * FROM zamowienia
WHERE status IN ('zrealizowane', 'oczekujące');

-- Pobranie produktów z określonych kategorii
SELECT * FROM produkty
WHERE kategoria IN ('elektronika', 'odzież', 'książki');

📌 Operator BETWEEN – Filtrowanie zakresów

Zastosowanie

  • BETWEEN pozwala na określenie zakresu wartości.
  • Zakres obejmuje wartości graniczne.
  • Może być używany do filtrowania liczb, dat i innych wartości.
Przykład
-- Podstawowa składnia
SELECT kolumny FROM tabela
WHERE kolumna BETWEEN wartość1 AND wartość2;

-- Pobranie użytkowników w wieku od 18 do 30 lat
SELECT * FROM uzytkownicy
WHERE wiek BETWEEN 18 AND 30;

-- Pobranie zamówień dokonanych między dwoma datami
SELECT * FROM zamowienia
WHERE data_zamowienia BETWEEN '2023-01-01' AND '2023-12-31';

-- Pobranie produktów o cenie między 100 a 500 zł
SELECT * FROM produkty
WHERE cena BETWEEN 100 AND 500;

Podsumowanie

  • Operator LIKE służy do wyszukiwania tekstów pasujących do wzorca.
  • Operator IN sprawdza, czy wartość należy do określonego zbioru.
  • Operator BETWEEN pozwala filtrować wyniki w określonym zakresie.
  • Wykorzystanie tych operatorów pozwala efektywnie selekcjonować dane w bazie.