Kartkówka z SQL: Zrozumienie JOINów i operacji na bazach danych

SQL, czyli Structured Query Language, jest podstawowym narzędziem każdego programisty i administratora baz danych. Na tej kartkówce uczniowie będą mieli okazję sprawdzić swoje umiejętności w korzystaniu z różnych rodzajów JOINów oraz manipulowaniu danymi w tabelach. Kartkówka jest dostosowana do uczniów, którzy opanowali już podstawy SQL i chcą pogłębić swoje umiejętności w bardziej zaawansowanych zapytaniach.

Zakres kartkówki:

  1. Dodawanie i aktualizowanie danych Uczniowie rozpoczną od prostych operacji takich jak dodanie kolumny do tabeli oraz aktualizowanie danych w oparciu o warunki. Będzie to bazować na przykładzie tabeli „klienci”, gdzie każdy klient zostanie przypisany do odpowiedniego miasta.
  2. Zadania z JOINów Kluczowym elementem kartkówki będą zadania wymagające użycia różnych rodzajów JOINów (INNER JOIN, LEFT JOIN, RIGHT JOIN). Uczniowie będą musieli analizować dane z kilku tabel, takich jak „klienci”, „zamówienia” oraz „produkty”.
  3. Agregacja danych W kartkówce pojawią się zadania wymagające użycia funkcji agregujących takich jak COUNT, SUM czy MAX. Uczniowie będą śledzić historię zamówień klientów oraz analizować ich wydatki.

Przed rozpoczęciem pracy

Przed wykonywaniem zadań do kartkówki zastosujcie ten kod w bazie sklep

ALTER TABLE klienci
ADD COLUMN miasto VARCHAR(100);
UPDATE klienci
SET miasto = CASE
WHEN id = 1 THEN 'Wrocław'
WHEN id = 2 THEN 'Warszawa'
WHEN id = 3 THEN 'Kraków'
WHEN id = 4 THEN 'Gdańsk'
WHEN id = 5 THEN 'Wrocław'
WHEN id = 6 THEN 'Warszawa'
WHEN id = 7 THEN 'Kraków'
WHEN id = 8 THEN 'Gdańsk'
WHEN id = 9 THEN 'Wrocław'
WHEN id = 10 THEN 'Warszawa'
END;

Przykładowe zadania, które mogą pojawić się na kartkówce:

  1. Wypisz imiona i nazwiska wszystkich klientów, którzy złożyli zamówienia w roku 2023. Świetne zadanie na INNER JOIN z tabelą „zamówienia”. Wymaga filtrowania danych w oparciu o daty.
  2. Wypisz nazwy produktów, które zostały zamówione przez klientów z miasta „Gdańsk”. Kombinacja INNER JOINów oraz warunku WHERE umożliwi uczniom praktyczne zastosowanie wiedzy o relacjach między tabelami.
  3. Wypisz klientów, którzy nie złożyli żadnych zamówień, wraz z ich miastami. Tutaj kluczowym elementem będzie zastosowanie LEFT JOIN oraz filtrowanie NULL.
  4. Wypisz, ile każdy z klientów zostawił w naszym sklepie pieniędzy (grupowanie po kolumnie imie). Funkcje agregujące, takie jak SUM, i grupowanie danych za pomocą GROUP BY stanowią istotną część tego zadania.
  5. Wypisz wszystkie zamówienia, które zawierają produkt o nazwie „Produkt A”, wraz z datą zamówienia i imieniem klienta. INNER JOIN oraz kluczowe filtrowanie danych pozwolią rozwiązać to zadanie.
  6. Wypisz imiona i nazwiska klientów, którzy złożyli więcej niż 1 zamówienie. Ciekawy przypadek z użyciem GROUP BY oraz HAVING, świetnie nadający się do sprawdzenia zrozumienia zaawansowanych opcji SQL.
  7. Wypisz wszystkie produkty, które nie zostały zamówione przez żadnego klienta. Zastosowanie LEFT JOIN pozwoli odnaleźć produkty bez powiązanych zamówień.
  8. Wypisz klientów, którzy złożyli zamówienia w ciągu ostatniego roku, wraz z datą ich ostatniego zamówienia. Tutaj kluczowe będzie łączenie danych oraz porównywanie dat.

Jak odkryć rozwiązania zadań na stronie?

Aby ułatwić uczniom samodzielne rozwiązywanie zadań, odpowiedzi zostały ukryte na naszej stronie w WordPressie. Każde zadanie ma przycisk „Pokaż rozwiązanie”, który odsłania krok po kroku sposób, w jaki można podejść do każdego problemu i stworzyć odpowiednie zapytanie SQL. Zachęcamy, aby przed kliknięciem spróbować samodzielnie rozwiązać zadanie!

Dlaczego te zadania są ważne?

Rozwiązanie powyższych zadań pozwala na zrozumienie fundamentów zarządzania danymi w relacyjnych bazach danych. Uczniowie nauczą się efektywnie łączyć dane z wielu tabel, optymalizować zapytania oraz przeprowadzać analizę danych w oparciu o rzeczywiste scenariusze biznesowe.

Przydatne wskazówki:

  • Zawsze sprawdzaj poprawność zapytania przed jego wykonaniem.
  • Użyj aliasów tabel dla lepszej czytelności kodu.
  • Pamiętaj o indeksach w tabelach, aby przyspieszyć działanie zapytań.

Podsumowanie

Ta kartkówka to doskonała okazja, by sprawdzić swoje umiejętności w SQL i lepiej zrozumieć, jak efektywnie zarządzać danymi w relacyjnych bazach danych. Powodzenia!


Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *