Praca z danymi: Operatory, Funkcje i Sortowanie

W tej lekcji nauczysz się manipulować danymi w SQL używając operatorów, funkcji i sortowania. Poznasz podstawowe narzędzia do filtrowania, agregowania i porządkowania danych, aby wydobywać z nich cenne informacje.

Learning Objectives

  • Zrozumienie i zastosowanie operatorów porównawczych i logicznych w zapytaniach SQL.
  • Wykorzystanie podstawowych funkcji agregujących (SUM, AVG, COUNT, MIN, MAX) do analizy danych.
  • Używanie funkcji tekstuowych do manipulacji stringami.
  • Sortowanie wyników zapytania za pomocą klauzuli ORDER BY.

Lesson Content

Operatory w SQL

Operatory są podstawą w SQL, umożliwiając nam filtrowanie i porównywanie danych. Mamy operatory porównawcze (np. =, !=, >, <, >=, <=) i logiczne (AND, OR, NOT).

Przykłady:

  • SELECT * FROM produkty WHERE cena > 10; (Wybiera produkty droższe niż 10 zł)
  • SELECT * FROM klienci WHERE kraj = 'Polska' AND miasto = 'Warszawa'; (Wybiera klientów z Polski i Warszawy)
  • SELECT * FROM zamowienia WHERE NOT stan = 'Zrealizowane'; (Wybiera zamówienia, które nie są zrealizowane)

Ćwiczenie: Spróbuj napisać zapytanie wybierające wszystkich pracowników, którzy mają więcej niż 30 lat. Zakładamy, że tabela 'pracownicy' zawiera kolumnę 'wiek'.

Funkcje Agregujące

Funkcje agregujące służą do wykonywania obliczeń na grupach wierszy. Najpopularniejsze to:

  • SUM(): Sumuje wartości.
  • AVG(): Oblicza średnią.
  • COUNT(): Zlicza wiersze.
  • MIN(): Znajduje minimalną wartość.
  • MAX(): Znajduje maksymalną wartość.

Przykłady:

  • SELECT SUM(cena) FROM zamowienia; (Sumuje wartość wszystkich zamówień)
  • SELECT AVG(ocena) FROM recenzje; (Oblicza średnią ocen)
  • SELECT COUNT(*) FROM produkty; (Zlicza liczbę produktów)
  • SELECT MAX(cena) FROM produkty; (Znajduje najdroższy produkt)

Wskazówka: Pamiętaj, że funkcje agregujące często używane są z klauzulą GROUP BY (która będzie omawiana w kolejnych lekcjach), pozwalającą na grupowanie danych.

Funkcje Tekstowe

SQL oferuje również funkcje do manipulacji tekstem, bardzo przydatne w pracy z danymi tekstowymi.

  • UPPER(): Zamienia tekst na wielkie litery.
  • LOWER(): Zamienia tekst na małe litery.
  • SUBSTRING(tekst, start, długość): Wyodrębnia fragment tekstu.
  • LENGTH(): Zwraca długość tekstu.
  • CONCAT(): Łączy łańcuchy znaków (w niektórych systemach ||)

Przykłady:

  • SELECT UPPER(nazwa) FROM produkty; (Wyświetla nazwy produktów wielkimi literami)
  • SELECT SUBSTRING(nazwa, 1, 5) FROM produkty; (Wyświetla pierwsze 5 znaków nazwy produktu)

Ćwiczenie: Napisz zapytanie, które wyświetla pierwsze trzy litery nazwiska każdego klienta z tabeli klienci.

Sortowanie danych (ORDER BY)

Klauzula ORDER BY pozwala sortować wyniki zapytań. Domyślnie sortuje rosnąco (ASC - ascending). Możemy również sortować malejąco (DESC - descending).

Przykłady:

  • SELECT * FROM produkty ORDER BY cena ASC; (Sortuje produkty według ceny rosnąco)
  • SELECT * FROM produkty ORDER BY cena DESC; (Sortuje produkty według ceny malejąco)
  • SELECT * FROM klienci ORDER BY kraj, miasto; (Sortuje najpierw po kraju, a następnie po mieście)

Ćwiczenie: Spróbuj posortować produkty według nazwy alfabetycznie, a następnie według ceny rosnąco.

Deep Dive

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

Rozszerzone Materiały do Nauki: Data Scientist - Bazy Danych i SQL (Dzień 3)

Witaj! Kontynuujemy naszą podróż po świecie SQL. Dzisiaj zagłębimy się w bardziej zaawansowane techniki manipulacji danymi, które pozwolą Ci wydobywać jeszcze więcej informacji z baz danych. Pamiętaj, że praktyka czyni mistrza – im więcej zapytani napiszesz, tym lepiej zrozumiesz niuanse SQL.

Deep Dive Section: Zaawansowane Operacje i Perspektywy

Przejdziemy teraz do bardziej zaawansowanych aspektów, które rozwijają wiedzę zdobytą w poprzedniej lekcji.

1. Operator LIKE i Dopasowywanie Wzorców

Operator LIKE pozwala na filtrowanie danych na podstawie wzorca. Używamy go, gdy chcemy znaleźć wartości, które pasują do określonego wzorca, a nie dokładnie do konkretnej wartości. Kluczowe są tutaj symbole % (dowolna liczba znaków) i _ (jeden znak). Pomyśl o tym jak o "szukaj w tekście" w SQL.

Przykład: Chcemy znaleźć wszystkich klientów z nazwiskami zaczynającymi się na "Kow".

SELECT * FROM Klienci WHERE Nazwisko LIKE 'Kow%';

% na końcu oznacza "cokolwiek po 'Kow'". Jeśli chcielibyśmy znaleźć osoby z nazwiskiem składającym się z dokładnie 5 liter i zaczynającym się na "Kow", użylibyśmy: WHERE Nazwisko LIKE 'Kow__'; (dwa znaki podkreślenia).

2. Agregacja z WARUNEK

Funkcje agregujące (SUM, AVG, COUNT, MIN, MAX) są potężne, ale co zrobić, gdy chcemy je zastosować na podzbiorze danych? Klauzula HAVING pozwala na filtrowanie wyników agregacji.

Przykład: Chcemy znaleźć kategorie produktów, których średnia cena przekracza 50 zł.

SELECT Kategoria, AVG(Cena) AS SredniaCena FROM Produkty GROUP BY Kategoria HAVING AVG(Cena) > 50;

Zauważ, że używamy GROUP BY przed HAVING.

3. Operatory IN i BETWEEN: Skrócenie i Wygoda

IN pozwala sprawdzać, czy wartość znajduje się w liście wartości. BETWEEN ułatwia sprawdzanie zakresów. Zastępują one często złożone warunki OR i AND, czyniąc zapytania bardziej czytelnymi.

Przykład z IN: Szukamy klientów z miast: Warszawa, Kraków lub Gdańsk.

SELECT * FROM Klienci WHERE Miasto IN ('Warszawa', 'Kraków', 'Gdańsk');

Przykład z BETWEEN: Szukamy produktów w cenie od 20 do 50 zł.

SELECT * FROM Produkty WHERE Cena BETWEEN 20 AND 50;

Bonus Exercises

Ćwiczenie 1: Analiza Sprzedaży z LIKE

Załóżmy, że masz tabelę Zamowienia z kolumną AdresDostawy. Napisz zapytanie, które znajdzie wszystkie zamówienia wysłane do miast zaczynających się na "Wro" (np. Wrocław).

-- Twój kod tutaj

Ćwiczenie 2: Agregacja z HAVING

Masz tabelę Pracownicy z kolumnami Dzial i Pensja. Napisz zapytanie, które znajdzie działy, w których średnia pensja jest wyższa niż 6000 zł.

-- Twój kod tutaj

Ćwiczenie 3: Użycie IN i BETWEEN

Masz tabelę Produkty z kolumną IdKategorii i Cena. Napisz zapytanie, które znajdzie produkty, których kategoria to 1, 3 lub 5 oraz cena jest między 10 a 30 zł.

-- Twój kod tutaj

Real-World Connections

Te umiejętności są kluczowe w wielu dziedzinach:

  • Analiza danych sprzedażowych: Identyfikacja trendów, analiza popularności produktów (np. które produkty często kupują się razem)
  • Zarządzanie bazą klientów: Segmentacja klientów na podstawie zachowań, tworzenie targetowanych kampanii marketingowych. Wykorzystanie operatora LIKE do wyłapywania literówek w adresach.
  • Analiza finansowa: Analiza wydatków, identyfikacja anomalii w transakcjach. BETWEEN jest idealne do analizy danych w konkretnych przedziałach czasowych.
  • E-commerce: Tworzenie rekomendacji produktów, analiza koszyków zakupowych.

Challenge Yourself

Spróbuj rozwiązać bardziej złożone zadanie. Mając tabele Zamowienia, Produkty i Klienci (z powiązaniami kluczy obcych), napisz zapytanie, które znajdzie:

  • Imiona klientów, którzy złożyli zamówienia na produkty z kategorii 'Elektronika' (za pomocą JOIN).
  • Posortuj wyniki po nazwisku klienta (ORDER BY).

-- Twój kod tutaj

Further Learning

Aby kontynuować swoją naukę, możesz zbadać następujące tematy:

  • Zaawansowane funkcje tekstuowe: SUBSTRING, REPLACE, CONCAT.
  • Podzapytania: Zapytania wewnątrz zapytań (bardzo potężne narzędzie).
  • Indeksy: Jak przyspieszyć zapytania w dużych bazach danych.
  • Transakcje: Zapewnienie integralności danych.
  • JOIN'y: Pogłęb wiedzę na temat JOIN'ów, zwłaszcza LEFT JOIN, RIGHT JOIN i FULL OUTER JOIN.
  • SQL Injection: Poznaj zagrożenia i sposoby zapobiegania. (Bardzo ważne dla bezpieczeństwa aplikacji!)

Zasoby: Szukaj tutoriali online (np. na YouTube, w dokumentacji baz danych) i rozwiązuj zadania na platformach takich jak SQLZoo, Hackerrank. Świetnym ćwiczeniem jest próba napisania SQL dla prawdziwych baz danych (np. używanych w e-commerce lub systemach rezerwacji).

Interactive Exercises

Ćwiczenie 1: Filtrowanie danych

Załóżmy, że masz tabelę `sprzedaz` z kolumnami `produkt`, `cena` i `data_sprzedazy`. Napisz zapytanie SQL, które wyświetli wszystkie transakcje sprzedaży, gdzie cena produktu jest wyższa niż 50 zł.

Ćwiczenie 2: Obliczanie wartości agregujących

Masz tabelę `zamowienia` z kolumnami `id_zamowienia`, `id_klienta` i `wartosc`. Napisz zapytanie SQL, które obliczy łączną wartość wszystkich zamówień.

Ćwiczenie 3: Manipulacja tekstem

Masz tabelę `pracownicy` z kolumną `imie`. Napisz zapytanie SQL, które wyświetli imiona pracowników w postaci 'Imie' (pierwsza litera duża, reszta mała).

Ćwiczenie 4: Sortowanie i filtrowanie

Masz tabelę `produkty` z kolumnami `nazwa` i `cena`. Napisz zapytanie, które wyświetli produkty posortowane od najdroższego do najtańszego, ale tylko te, których cena jest powyżej 20 zł.

Knowledge Check

Question 1: Który operator logiczny służy do łączenia warunków w zapytaniu, aby oba musiały być spełnione?

Question 2: Która funkcja SQL służy do obliczania średniej wartości kolumny?

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

Question 4: Która z poniższych funkcji zwraca długość tekstu?

Question 5: Który operator jest używany do porównywania, czy wartość jest RÓŻNA od innej wartości?

Practical Application

Wyobraź sobie, że jesteś analitykiem w sklepie internetowym. Musisz przygotować raport sprzedaży, który pokazuje produkty sprzedane w cenie powyżej 100 zł, posortowane od najdroższego do najtańszego. Dodatkowo, dla każdego klienta chcesz wyświetlić jego imię, ale w postaci wielkich liter. Użyj poznanych operatorów, funkcji i sortowania, aby wygenerować ten raport.

Key Takeaways

Next Steps

Przygotuj się na poznawanie klauzuli GROUP BY i HAVING, które pozwalają na bardziej zaawansowaną analizę danych.

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