W tej lekcji poznasz podstawy języka SQL, niezbędnego narzędzia do interakcji z bazami danych. Nauczysz się, jak pobierać i przetwarzać dane, co jest fundamentalne dla pracy Inżyniera Danych i kluczowym elementem procesów ETL.
Bazy danych relacyjnych (np. MySQL, PostgreSQL, SQLite) przechowują dane w tabelach, które są zorganizowane w wierszach i kolumnach. To jak arkusze kalkulacyjne, ale z potężniejszymi możliwościami. Kluczowe pojęcia to: Tabela (Tabela), czyli zbiór danych; Wiersz (Rekord), czyli pojedynczy wpis w tabeli; Kolumna (Pole), czyli atrybut danych (np. imię, nazwisko); Klucz Główny (Primary Key), unikalny identyfikator każdego wiersza. Wyobraź sobie bazę danych z klientami: tabela 'klienci' może mieć kolumny: 'id_klienta', 'imie', 'nazwisko', 'email'.
Instrukcja SELECT
służy do wybierania danych. FROM
określa, z której tabeli chcemy pobrać dane. WHERE
filtruje wyniki na podstawie określonych warunków.
Przykład:
Załóżmy, że mamy tabelę produkty
z kolumnami: id_produktu
, nazwa
, cena
.
SELECT * FROM produkty;
– pobiera wszystkie kolumny i wiersze z tabeli 'produkty'. *
oznacza wszystkie kolumny.SELECT nazwa, cena FROM produkty;
– pobiera tylko kolumny 'nazwa' i 'cena' z tabeli 'produkty'.SELECT * FROM produkty WHERE cena > 100;
– pobiera wszystkie produkty, których cena jest wyższa niż 100.SELECT * FROM produkty WHERE nazwa = 'Laptop';
- pobiera wszystkie produkty, których nazwa to 'Laptop'.Klauzula WHERE
pozwala na bardziej szczegółowe filtrowanie danych. Używamy operatorów porównania (>, <, =, !=), oraz operatorów logicznych (AND
, OR
, NOT
) do łączenia warunków.
Przykład:
SELECT * FROM produkty WHERE cena > 50 AND kategoria = 'Elektronika';
– produkty, których cena jest większa niż 50 i należą do kategorii 'Elektronika'.SELECT * FROM produkty WHERE kategoria = 'Odzież' OR kategoria = 'Obuwie';
– produkty z kategorii 'Odzież' lub 'Obuwie'.SELECT * FROM produkty WHERE NOT kategoria = 'Żywność';
– produkty, które nie należą do kategorii 'Żywność'.Instrukcja ORDER BY
służy do sortowania wyników. Domyślnie sortuje rosnąco (ASC), ale można użyć DESC
dla sortowania malejącego. LIMIT
ogranicza liczbę zwróconych wierszy.
Przykład:
SELECT * FROM produkty ORDER BY cena ASC;
– sortuje produkty rosnąco według ceny.SELECT * FROM produkty ORDER BY cena DESC;
– sortuje produkty malejąco według ceny.SELECT * FROM produkty ORDER BY cena DESC LIMIT 10;
– zwraca 10 najdroższych produktów.Explore advanced insights, examples, and bonus exercises to deepen understanding.
Witamy ponownie! Po solidnym wprowadzeniu do podstaw SQL, zagłębimy się teraz w nieco bardziej zaawansowane aspekty, które pozwolą Ci jeszcze skuteczniej wykorzystywać SQL w pracy Inżyniera Danych. Pamiętaj, SQL to Twój klucz do świata danych - im lepiej go opanujesz, tym łatwiej będzie Ci budować i utrzymywać efektywne procesy ETL.
Przejdźmy teraz do bardziej zaawansowanych koncepcji, które pomogą Ci w pełni wykorzystać potencjał SQL.
Zrozumienie typów danych jest kluczowe. Pamiętaj, że różne typy danych (np. INTEGER
dla liczb całkowitych, VARCHAR
dla ciągów znaków, DATE
dla dat) wpływają na sposób, w jaki dane są przechowywane, przetwarzane i porównywane. Błąd w doborze typu danych może prowadzić do błędów w zapytaniach i nieprawidłowych wyników. Rozważmy przykład: próba porównania daty z wartością tekstową zwróci błąd lub nieoczekiwane rezultaty.
Praca z danymi tekstowymi jest codziennością Inżyniera Danych. SQL oferuje szereg funkcji do manipulacji ciągami znaków. Najważniejsze to:
CONCAT
- łączenie ciągów.SUBSTRING
- wycinanie fragmentów stringów.UPPER
/LOWER
- zmiana wielkości liter.LENGTH
- określanie długości stringa.Przykład: Jeśli mamy kolumnę 'adres' i chcemy wyodrębnić kod pocztowy, możemy użyć SUBSTRING(adres, LENGTH(adres) - 4, 5)
(zakładając, że kod pocztowy ma format "00-000").
Przetwarzanie danych dat jest równie istotne. SQL oferuje funkcje do obliczania różnic między datami, formatowania dat i wyodrębniania części daty (rok, miesiąc, dzień). Przykładowe funkcje:
NOW()
- aktualna data i czas.DATE_FORMAT(data, '%Y-%m-%d')
- formatowanie daty.DATE_ADD(data, INTERVAL 1 DAY)
- dodawanie do daty (np. jeden dzień).Ćwiczenie 1: Masz tabelę 'Klienci' z kolumną 'data_rejestracji' (typu DATE) oraz 'email'. Napisz zapytanie, które wyświetli wszystkich klientów, którzy zarejestrowali się w ostatnim miesiącu. Wykorzystaj funkcje daty.
SELECT * FROM Klienci WHERE data_rejestracji BETWEEN DATE_SUB(CURDATE(), INTERVAL 1 MONTH) AND CURDATE();
Ćwiczenie 2: Masz tabelę 'Produkty' z kolumnami 'nazwa' i 'cena'. Napisz zapytanie, które wyświetli nazwy produktów w formacie wielkimi literami i cenę zaokrągloną do dwóch miejsc po przecinku. Użyj funkcji stringowych i matematycznych.
SELECT UPPER(nazwa) AS Nazwa, ROUND(cena, 2) AS Cena FROM Produkty;
Zastosowanie SQL w pracy Inżyniera Danych jest wszechobecne. Poniżej kilka przykładów:
Spróbuj wykonać następujące zadania, aby utrwalić wiedzę:
Aby pogłębić swoją wiedzę, rozważ następujące tematy:
Powodzenia w dalszej nauce i praktyce! Pamiętaj, kluczem do sukcesu jest regularne ćwiczenie i eksperymentowanie!
Za pomocą instrukcji SELECT, wybierz imię, nazwisko i email z tabeli 'klienci'.
Załóżmy tabelę `zamowienia` z kolumnami `id_zamowienia`, `id_klienta`, `wartosc`, `data_zamowienia`. Napisz zapytanie, które wybierze wszystkie zamówienia klienta o id_klienta = 123, posortowane po dacie zamowienia od najnowszej, i ograniczy wynik do 5 pierwszych wierszy.
Załóżmy tabelę `ksiazki` z kolumnami `id_ksiazki`, `tytul`, `autor`, `cena`, `kategoria`. Napisz zapytanie, które wybierze książki z kategorii 'Kryminał' lub 'Thriller', których cena jest wyższa niż 30 zł.
Pomyśl o różnych typach danych, które przechowujesz w swoim codziennym życiu (np. kontakty w telefonie, lista zakupów). Jak można by je zorganizować w tabelach baz danych? Jakie kolumny byś zdefiniował?
Wyobraź sobie, że pracujesz dla małego sklepu internetowego. Twoim zadaniem jest wygenerowanie raportu, który wyświetli 10 najdroższych produktów w sklepie oraz listę klientów, którzy dokonali zakupów powyżej 100 zł w ostatnim miesiącu. Użyj SQL, aby wygenerować dane potrzebne do tego raportu.
Przygotuj się na poznawanie JOIN'ów, czyli łączenia danych z różnych tabel. Zapoznaj się z podstawami agregacji danych (funkcje takie jak COUNT, SUM, AVG) i Grupowania (GROUP BY).
We're automatically tracking your progress. Sign up for free to keep your learning paths forever and unlock advanced features like detailed analytics and personalized recommendations.