Lekcja 5 – Pobieranie danych z bazy danych SQL

W poprzednich lekcjach nauczyliśmy się, jak tworzyć tabele i wstawiać do nich dane. Teraz nadszedł czas, aby poznać jedno z najważniejszych poleceń w SQL – SELECT. Polecenie to pozwala na pobieranie danych z tabel, filtrowanie ich, sortowanie, a także łączenie danych z różnych tabel. W tej lekcji omówimy podstawową składnię SELECT, jak używać klauzuli WHERE, jak sortować wyniki za pomocą ORDER BY oraz jak łączyć dane z wielu tabel.

Podstawy polecenia SELECT

Polecenie SELECT służy do pobierania danych z tabeli w bazie danych. Jest to jedno z najczęściej używanych poleceń w SQL, ponieważ umożliwia wyświetlanie danych zapisanych w tabelach. Podstawowa składnia wygląda następująco:

SELECT kolumna1, kolumna2, ...
FROM nazwa_tabeli;
  • kolumna1, kolumna2, … – nazwy kolumn, które chcesz wyświetlić.
  • nazwa_tabeli – tabela, z której chcesz pobrać dane.

Przykład: Pobieranie wszystkich kolumn

Załóżmy, że masz tabelę Uzytkownicy z kolumnami ID, Imie, Nazwisko i Email. Aby wyświetlić wszystkie dane z tej tabeli, możesz użyć następującego zapytania:

SELECT * FROM Uzytkownicy;

W tym przypadku znak * oznacza, że chcemy pobrać wszystkie kolumny z tabeli Uzytkownicy. Wynikiem tego zapytania będą wszystkie wiersze oraz wszystkie kolumny z tabeli.

Przykład: Pobieranie wybranych kolumn

Jeśli chcesz pobrać tylko niektóre kolumny, np. tylko imiona i nazwiska użytkowników, możesz wskazać konkretne kolumny:

SELECT Imie, Nazwisko FROM Uzytkownicy;

To zapytanie zwróci tabelę zawierającą tylko kolumny Imie i Nazwisko.

Filtrowanie danych za pomocą WHERE

Klauzula WHERE pozwala na filtrowanie danych i pobieranie tylko tych rekordów, które spełniają określone warunki. Składnia wygląda następująco:

SELECT kolumna1, kolumna2, ...
FROM nazwa_tabeli
WHERE warunek;

Warunki mogą być oparte na porównaniach wartości, takich jak równość, większe/mniejsze niż, a także inne operatory logiczne.

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

SELECT Imie, Nazwisko FROM Uzytkownicy
WHERE Nazwisko = 'Kowalski';

To zapytanie zwróci tylko tych użytkowników, których nazwisko to „Kowalski”.

Użycie operatorów porównań

Możesz używać różnych operatorów porównań w klauzuli WHERE:

  • = – równość.
  • <> lub != – nierówność.
  • < – mniejsze niż.
  • > – większe niż.
  • <= – mniejsze lub równe.
  • >= – większe lub równe.

Przykład: Pobieranie użytkowników, których ID jest większe niż 5:

SELECT Imie, Nazwisko FROM Uzytkownicy
WHERE ID > 5;

Filtrowanie za pomocą LIKE

Klauzula LIKE umożliwia wyszukiwanie danych, które pasują do wzorca. Używamy tutaj symbolu procenta %, który oznacza dowolny ciąg znaków.

Przykład: Pobieranie użytkowników, których imię zaczyna się na „A”:

SELECT Imie, Nazwisko FROM Uzytkownicy
WHERE Imie LIKE 'A%';

To zapytanie zwróci wszystkich użytkowników, których imię zaczyna się na literę „A”. Symbol % oznacza, że po literze „A” może być dowolny ciąg znaków.

Sortowanie wyników za pomocą ORDER BY

Klauzula ORDER BY umożliwia sortowanie wyników zapytania według jednej lub kilku kolumn. Domyślnie wyniki są sortowane rosnąco, ale możesz również ustawić sortowanie malejące.

Składnia:

SELECT kolumna1, kolumna2, ...
FROM nazwa_tabeli
ORDER BY kolumna1 [ASC|DESC];
  • ASC – sortowanie rosnące (domyślne).
  • DESC – sortowanie malejące.

Przykład: Sortowanie użytkowników alfabetycznie według nazwiska:

SELECT Imie, Nazwisko FROM Uzytkownicy
ORDER BY Nazwisko;

Jeśli chcesz sortować malejąco, dodaj klauzulę DESC:

SELECT Imie, Nazwisko FROM Uzytkownicy
ORDER BY Nazwisko DESC;

Łączenie wielu warunków za pomocą AND i OR

Możesz połączyć wiele warunków w klauzuli WHERE za pomocą operatorów logicznych AND i OR.

Przykład: Pobieranie użytkowników o nazwisku „Kowalski”, którzy mają ID większe niż 5:

SELECT Imie, Nazwisko FROM Uzytkownicy
WHERE Nazwisko = 'Kowalski' AND ID > 5;

Wynik tego zapytania to tylko ci użytkownicy, którzy spełniają oba warunki – mają nazwisko „Kowalski” i ID większe niż 5.

Możesz również używać operatora OR, aby pobrać dane, które spełniają jeden z kilku warunków.

Przykład: Pobieranie użytkowników o nazwisku „Kowalski” lub tych, których ID jest większe niż 5:

SELECT Imie, Nazwisko FROM Uzytkownicy
WHERE Nazwisko = 'Kowalski' OR ID > 5;

Ograniczanie liczby wyników za pomocą LIMIT

Jeśli baza danych zawiera wiele rekordów, możesz chcieć ograniczyć liczbę wyników, które zostaną zwrócone. Możesz to zrobić za pomocą klauzuli LIMIT.

Składnia:

SELECT kolumna1, kolumna2, ...
FROM nazwa_tabeli
LIMIT liczba_wynikow;

Przykład: Pobieranie pierwszych 5 użytkowników:

SELECT Imie, Nazwisko FROM Uzytkownicy
LIMIT 5;

Klauzula LIMIT jest szczególnie przydatna, gdy chcesz ograniczyć liczbę zwracanych wyników, na przykład podczas paginacji na stronach internetowych.

Łączenie danych z wielu tabel za pomocą JOIN

Czasami potrzebujesz danych z wielu tabel. W takim przypadku możesz użyć operatora JOIN, aby połączyć dane z dwóch lub więcej tabel na podstawie powiązanych ze sobą kolumn (np. klucz obcy i klucz podstawowy).

Przykład: Łączenie tabel Uzytkownicy i Zamowienia:

SELECT Uzytkownicy.Imie, Uzytkownicy.Nazwisko, Zamowienia.Data
FROM Uzytkownicy
JOIN Zamowienia ON Uzytkownicy.ID = Zamowienia.User_ID;

W tym zapytaniu pobieramy imię i nazwisko użytkownika oraz datę zamówienia z tabeli Zamowienia. Tabele są połączone za pomocą kolumn ID z tabeli Uzytkownicy oraz User_ID z tabeli Zamowienia.

Rodzaje JOIN:
  • INNER JOIN – zwraca tylko te rekordy, które mają dopasowanie w obu tabelach.
  • LEFT JOIN – zwraca wszystkie rekordy z lewej tabeli i tylko te dopasowane z prawej tabeli.
  • RIGHT JOIN – zwraca wszystkie rekordy z prawej tabeli i tylko te dopasowane z lewej tabeli.
  • FULL JOIN – zwraca wszystkie rekordy z obu tabel, niezależnie od dopasowania.

Przykład LEFT JOIN:

SELECT Uzytkownicy.Imie, Uzytkownicy.Nazwisko, Zamowienia.Data
FROM Uzytkownicy
LEFT JOIN Zamowienia ON Uzytkownicy.ID = Zamowienia.User_ID;

To zapytanie zwróci wszystkich użytkowników, nawet tych, którzy nie mają powiązanych zamówień.

Podsumowanie

Polecenie SELECT jest jednym z najważniejszych narzędzi w SQL, które umożliwia pobieranie danych z bazy. Dzięki klauzulom WHERE, ORDER BY, LIMIT oraz możliwości łączenia tabel za pomocą JOIN, możesz tworzyć zaawansowane zapytania, które zwracają dokładnie te dane, których potrzebujesz. W kolejnych lekcjach zgłębimy, jak aktualizować i usuwać dane, oraz jak efektywnie zarządzać danymi w bazie.

Selekcja danych to kluczowy element pracy z bazami danych, dlatego ważne jest, aby dobrze opanować te podstawowe techniki. W następnych lekcjach przejdziemy do manipulacji danymi, czyli aktualizacji oraz usuwania rekordów.

Gratulacje! Ukończyłeś lekcję 5.
Przejdź teraz do lekcji 6 >> Aktualizacja i usuwanie danych SQL


Spis Treści - darmowy kurs SQL


Wprowadzenie: Czym jest baza danych?
Lekcja 1: Instalacja dedykowanego środowiska dla SQL
Lekcja 2: Tworzenie bazy danych
Lekcja 3: Tworzenie tabel w SQL
Lekcja 4: Wstawianie danych do bazy danych SQL
Lekcja 5: Pobieranie danych z bazy danych SQL
Lekcja 6: Aktualizacja i usuwanie danych SQL
Lekcja 7: Operacje na danych (JOIN)
Lekcja 8: Funkcje agregujące i grupowanie danych (GROUP BY)
Lekcja 9: Podzapytania (Subqueries)
Lekcja 10: Indeksy w bazach danych
Lekcja 11: Optymalizacja zapytań SQL
Lekcja 12: Transakcje w bazach danych
Lekcja 13: Zarządzanie blokadami (Locks) i dostępem do danych
Lekcja 14: Replikacja danych w bazach danych
Lekcja 15: Partycjonowanie danych SQL
Lekcja 16: Widoki (Views) w bazach danych
Lekcja 17: Procedury składowane (Stored Procedures) i funkcje w SQL
Lekcja 18: Wyzwalacze (Triggers) w bazach danych
Lekcja 19: Zaawansowane indeksowanie w bazach danych
Lekcja 20: Narzędzia do zarządzania dużymi danymi (Big Data) w SQL
Lekcja 21: Bezpieczeństwo baz danych


Dodatki: 
- Spis najważniejszych funkcji SQL

Jeśli chciałbyś być poinformowany o następnych kursach to zapisz się do naszego newslettera: