SQL dla początkujących — podstawy w 30 minut
SQL (Structured Query Language) to język zapytań do baz danych, który jest niezbędny dla analityków danych, programistów, a nawet marketingowców. Dobra wiadomość: podstawy SQL można opanować w ciągu jednej godziny. Oto kompaktowy przewodnik, który nauczy Cię wszystkiego, co potrzebujesz na start.
Czym jest SQL?
SQL to standardowy język do komunikacji z relacyjnymi bazami danych. Pozwala:
- Pobierać dane z bazy (SELECT)
- Wstawiać nowe dane (INSERT)
- Aktualizować istniejące dane (UPDATE)
- Usuwać dane (DELETE)
- Tworzyć struktury bazy (CREATE)
SQL jest używany w: MySQL, PostgreSQL, SQLite, Microsoft SQL Server, Oracle i wielu innych.
Podstawowa struktura bazy danych
Baza danych = zbiór tabel. Tabela = wiersze (rekordy) i kolumny (pola).
Przykładowa tabela klienci:
| id | imie | nazwisko | miasto | |
|---|---|---|---|---|
| 1 | Jan | Kowalski | jan@... | Warszawa |
| 2 | Anna | Nowak | anna@... | Kraków |
| 3 | Piotr | Wiśniak | piotr@... | Warszawa |
Polecenie SELECT — pobieranie danych
Podstawowe SELECT
sql-- Pobierz wszystkie kolumny SELECT * FROM klienci; -- Pobierz konkretne kolumny SELECT imie, nazwisko, email FROM klienci; -- Pobierz z aliasem (inną nazwą kolumny) SELECT imie AS "Imię", nazwisko AS "Nazwisko" FROM klienci;
WHERE — filtrowanie
sql-- Klienci z Warszawy SELECT * FROM klienci WHERE miasto = 'Warszawa'; -- Klienci, których imię zaczyna się na A SELECT * FROM klienci WHERE imie LIKE 'A%'; -- Klienci o ID > 1 SELECT * FROM klienci WHERE id > 1; -- Kilka warunków (AND/OR) SELECT * FROM klienci WHERE miasto = 'Warszawa' AND imie = 'Jan';
ORDER BY — sortowanie
sql-- Sortuj po nazwisku rosnąco SELECT * FROM klienci ORDER BY nazwisko ASC; -- Sortuj po nazwisku malejąco SELECT * FROM klienci ORDER BY nazwisko DESC;
LIMIT — ograniczenie wyników
sql-- Pobierz tylko 10 rekordów SELECT * FROM klienci LIMIT 10; -- Pomiń pierwsze 10, pobierz kolejne 10 (paginacja) SELECT * FROM klienci LIMIT 10 OFFSET 10;
Funkcje agregujące
sql-- Ile jest klientów? SELECT COUNT(*) FROM klienci; -- Ile klientów z Warszawy? SELECT COUNT(*) FROM klienci WHERE miasto = 'Warszawa'; -- Suma, średnia, min, max (dla danych liczbowych) SELECT SUM(kwota) AS suma, AVG(kwota) AS srednia, MIN(kwota) AS minimum, MAX(kwota) AS maksimum FROM zamowienia;
GROUP BY — grupowanie
sql-- Ile klientów z każdego miasta? SELECT miasto, COUNT(*) AS liczba_klientow FROM klienci GROUP BY miasto; -- Grupowanie z filtrem (HAVING) SELECT miasto, COUNT(*) AS liczba_klientow FROM klienci GROUP BY miasto HAVING COUNT(*) > 5;
JOIN — łączenie tabel
To kluczowa koncepcja SQL — łączenie danych z wielu tabel.
Dodatkowa tabela zamowienia:
| id | klient_id | kwota | data |
|---|---|---|---|
| 1 | 1 | 150 | 2026-01-15 |
| 2 | 2 | 320 | 2026-01-16 |
| 3 | 1 | 89 | 2026-01-20 |
sql-- INNER JOIN — tylko pasujące rekordy SELECT k.imie, k.nazwisko, z.kwota, z.data FROM klienci k INNER JOIN zamowienia z ON k.id = z.klient_id; -- LEFT JOIN — wszyscy klienci, nawet bez zamówień SELECT k.imie, k.nazwisko, z.kwota FROM klienci k LEFT JOIN zamowienia z ON k.id = z.klient_id;
INSERT, UPDATE, DELETE
sql-- Wstaw nowego klienta INSERT INTO klienci (imie, nazwisko, email, miasto) VALUES ('Marta', 'Kwiatkowska', 'marta@email.com', 'Wrocław'); -- Zaktualizuj adres email UPDATE klienci SET email = 'nowy@email.com' WHERE id = 1; -- Usuń klienta (OSTROŻNIE!) DELETE FROM klienci WHERE id = 1;
Przydatne operatory SQL
sql-- IN — sprawdź czy wartość należy do listy SELECT * FROM klienci WHERE miasto IN ('Warszawa', 'Kraków', 'Wrocław'); -- BETWEEN — zakres SELECT * FROM zamowienia WHERE kwota BETWEEN 100 AND 500; -- IS NULL / IS NOT NULL SELECT * FROM klienci WHERE telefon IS NULL; -- DISTINCT — unikalne wartości SELECT DISTINCT miasto FROM klienci;
Subqueries — podzapytania
sql-- Klienci, którzy złożyli zamówienie powyżej 300 zł SELECT imie, nazwisko FROM klienci WHERE id IN ( SELECT klient_id FROM zamowienia WHERE kwota > 300 );
Gdzie ćwiczyć SQL?
- SQLiteOnline.com — baza w przeglądarce, zero konfiguracji
- HackerRank SQL — zadania z rosnącym stopniem trudności
- LeetCode SQL — zadania dla analityków
- Mode Analytics — tutoriale z prawdziwymi danymi
- W3Schools SQL — interaktywny kurs
Najczęstsze błędy początkujących
- UPDATE/DELETE bez WHERE — modyfikujesz/usuwasz wszystkie rekordy!
- **SELECT *** — w produkcji zawsze wybieraj konkretne kolumny
- Pomylenie JOIN typów — INNER vs LEFT vs RIGHT
- NULL handling — NULL ≠ pusty string; używaj IS NULL nie = NULL
Podsumowanie
SQL to jeden z najcenniejszych skillów na rynku pracy — przydatny dla analityków danych, programistów, marketerów i managerów. Podstawy są proste i można je opanować w kilka godzin. Reszta to praktyka!
Naucz się SQL i analizy danych z kursami na VITA i otwórz drzwi do kariery w data analytics.