**Podstawy SQL

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.

Learning Objectives

  • Zrozumieć podstawowe pojęcia związane z bazami danych relacyjnych.
  • Poznać składnię podstawowych instrukcji SQL: SELECT, FROM, WHERE.
  • Potrafić filtrować dane używając klauzuli WHERE i operatorów logicznych.
  • Zrozumieć i stosować operatory ORDER BY i LIMIT do sortowania i ograniczania wyników.

Lesson Content

Wprowadzenie do Baz Danych Relacyjnych

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'.

Podstawowe Instrukcje SQL: SELECT, FROM, WHERE

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'.

Filtrowanie Danych z WHERE i Operatorami Logiczne

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ść'.

Sortowanie i Ograniczanie Wyników: ORDER BY i LIMIT

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.

Deep Dive

Explore advanced insights, examples, and bonus exercises to deepen understanding.

Rozszerzona Lekcja: SQL dla Inżynierów Danych – Poziom Początkujący (Dzień 4)

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.

🔍 Deep Dive: W Głębi SQL – Kluczowe Koncepcje

Przejdźmy teraz do bardziej zaawansowanych koncepcji, które pomogą Ci w pełni wykorzystać potencjał SQL.

1. Typy Danych i Ich Znaczenie

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.

2. Operacje na Stringach

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").

3. Operacje na Datach

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ń).

📝 Bonus Ćwiczenia

Ć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;
      

💡 Real-World Connections: SQL w Praktyce

Zastosowanie SQL w pracy Inżyniera Danych jest wszechobecne. Poniżej kilka przykładów:

  • Budowanie Raportów: Wykorzystanie SQL do pobierania i agregacji danych z wielu źródeł w celu generowania raportów dla zarządu, np. analiza sprzedaży w różnych regionach.
  • Procesy ETL: Ekstrakcja, Transformacja i Ładowanie danych. SQL jest podstawowym narzędziem do transformacji danych, takich jak czyszczenie, konwersja typów, czy agregacja danych.
  • Analiza Big Data: W połączeniu z narzędziami takimi jak Hadoop czy Spark, SQL jest wykorzystywany do przetwarzania ogromnych zbiorów danych.
  • Integracja Danych: SQL służy do łączenia danych z różnych systemów, np. z systemów CRM, e-commerce i magazynów danych.

💪 Challenge Yourself: Dodatkowe Zadania

Spróbuj wykonać następujące zadania, aby utrwalić wiedzę:

  1. Stwórz tabelę 'Zamowienia' z kolumnami 'id_zamowienia', 'id_klienta', 'data_zamowienia' i 'wartosc'. Napisz zapytanie, które oblicza średnią wartość zamówienia dla każdego klienta.
  2. Wprowadź kilka błędów w typach danych w swojej tabeli, np. w kolumnie 'cena' przechowuj tekst. Spróbuj napisać zapytanie, które "wybuchnie" z powodu tych błędów.

📚 Further Learning: Co Dalej?

Aby pogłębić swoją wiedzę, rozważ następujące tematy:

  • Zaawansowane funkcje SQL: Funkcje okienkowe, CTE (Common Table Expressions), procedury składowane.
  • Optymalizacja zapytań SQL: Indeksy, plany wykonania, analiza zapytań.
  • SQL w kontekście systemów baz danych: MySQL, PostgreSQL, SQL Server, Oracle.
  • Narzędzia ETL: Poznaj popularne narzędzia ETL (np. Apache NiFi, Talend, Informatica).
  • Kursy online: Platformy takie jak Coursera, Udemy, czy Khan Academy oferują zaawansowane kursy SQL.

Powodzenia w dalszej nauce i praktyce! Pamiętaj, kluczem do sukcesu jest regularne ćwiczenie i eksperymentowanie!

Interactive Exercises

Ćwiczenie 1: Wybierz Dane

Za pomocą instrukcji SELECT, wybierz imię, nazwisko i email z tabeli 'klienci'.

Ćwiczenie 2: Filtruj i Sortuj

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.

Ćwiczenie 3: Użyj WHERE z Operatorami Logiczne

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ł.

Ćwiczenie 4: Refleksja

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ł?

Knowledge Check

Question 1: Która instrukcja służy do pobierania danych z tabeli?

Question 2: Która klauzula służy do filtrowania danych?

Question 3: Jakiego operatora używamy, aby połączyć dwa warunki i aby oba musiały być spełnione?

Question 4: Która klauzula służy do sortowania wyników?

Question 5: Co robi instrukcja LIMIT?

Practical Application

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.

Key Takeaways

Next Steps

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).

Your Progress is Being Saved!

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.

Next Lesson (Day 5)