Zapytanie SELECT: Klauzula WHERE

Klauzula WHERE w MySQL umożliwia filtrowanie wyników zwracanych przez zapytanie SELECT. Dzięki niej możemy pobierać tylko te dane, które spełniają określone warunki, np. użytkowników o określonym wieku, zamówienia o konkretnej wartości czy produkty z danej kategorii.

Używanie klauzuli `WHERE` pozwala na precyzyjne pobieranie danych i optymalizację zapytań.

📌 Składnia klauzuli WHERE

Elementy

  • SELECT – określa, które kolumny chcemy pobrać.
  • FROM – wskazuje tabelę, z której pobieramy dane.
  • WHERE – filtruje wyniki na podstawie warunku.
Przykład
SELECT kolumny
FROM nazwa_tabeli
WHERE warunek;

📌 Filtrowanie wyników na podstawie wartości

✅ Przykład: Pobranie użytkowników o nazwisku „Kowalski”

Opis:

  • Pobiera wszystkich użytkowników, których nazwisko to "Kowalski".
  • Wartość tekstowa musi być ujęta w pojedyncze (') lub podwójne (") cudzysłowy.

📌 Operatory porównania w WHERE

Najczęściej używane operatory porównania:

  • = – równa się (`WHERE wiek = 25`).
  • != lub `< >` – różne (`WHERE status != 'aktywny'`).
  • >, `<`, `>=`, `<=` – porównania (`WHERE cena > 100`).
Przykład
-- Filtrowanie wyników na podstawie wartości
SELECT * FROM uzytkownicy
WHERE nazwisko = 'Kowalski';

-- Pobranie zamówień o wartości większej niż 500
SELECT * FROM zamowienia
WHERE wartosc > 500;

-- Pobranie użytkowników, którzy NIE są aktywni
SELECT * FROM uzytkownicy
WHERE status != 'aktywny';

📌 Filtrowanie wielu wartości – operator IN

✅ Przykład: Pobranie użytkowników z miast Warszawa, Kraków lub Wrocław

📝 Opis:

  • IN sprawdza, czy wartość znajduje się w podanym zbiorze.
  • Działa szybciej niż użycie wielu warunków OR.

📌 Sprawdzanie zakresu wartości – operator BETWEEN

✅ Przykład: Pobranie użytkowników w wieku od 18 do 30 lat

📝 Opis:

  • BETWEEN zwraca wartości w określonym zakresie (łącznie z wartościami granicznymi).
Przykład
-- Filtrowanie wielu wartości – operator IN
SELECT * FROM uzytkownicy
WHERE miasto IN ('Warszawa', 'Kraków', 'Wrocław');

-- Sprawdzanie zakresu wartości – operator BETWEEN
SELECT * FROM uzytkownicy
WHERE wiek BETWEEN 18 AND 30;

📌 Filtracja wartości tekstowych – operator LIKE

✅ Przykład: Pobranie użytkowników, których imię zaczyna się na "A"

📝 Opis:

  • LIKE pozwala wyszukiwać wartości pasujące do określonego wzorca.
  • % zastępuje dowolną ilość znaków.

📌 Inne zastosowania:

  • '%nowak' - nazwiska kończące się na "nowak".
  • '%@gmail.com' - adresy e-mail w domenie Gmail.
Przykład
SELECT * FROM uzytkownicy
WHERE imie LIKE 'A%';

Podsumowanie

  • Klauzula WHERE pozwala filtrować wyniki zwracane przez SELECT.
  • Możemy używać operatorów porównania (`=`, `!=`, `>`, `<`, `>=`, `<=`).
  • IN pozwala na sprawdzenie wartości w zbiorze.
  • BETWEEN pozwala na sprawdzenie wartości w zakresie.
  • LIKE umożliwia filtrowanie tekstów na podstawie wzorca.
  • Efektywne użycie klauzuli WHERE przyspiesza działanie zapytań.