icon icon

Kurs SQL średniozaawansowany – praca z danymi i optymalizacja zapytań

icon

Proces szkoleniowy

Analiza potrzeb szkoleniowych

Jeśli masz życzenie dotyczące programu szkolenia, przeprowadzimy dla Ciebie analizę potrzeb szkoleniowych, która będzie wskazówką dla nas, na jakie aspekty programu położyć większy nacisk – tak, by program szkolenia spełniał konkretne potrzeby.

Co zyskujesz?

icon

Sprawne modyfikowanie danych - Nauczysz się bezpiecznie wstawiać, aktualizować i usuwać dane także w bardziej złożonych przypadkach, dzięki czemu szybciej przygotujesz poprawne operacje na tabelach roboczych i produkcyjnych.

icon

Lepsze raporty i podsumowania - Opanujesz GROUP BY, funkcje agregujące i HAVING, więc samodzielnie zbudujesz raporty pokazujące trendy, sumy, średnie i liczności bez potrzeby ręcznego obrabiania wyników poza bazą.

icon

Skuteczne użycie podzapytań - Zaczniesz świadomie stosować podzapytania w WHERE i FROM oraz operatory IN i EXISTS, co pozwoli Ci tworzyć precyzyjne zapytania do filtrowania i porównywania danych z wielu źródeł.

icon

Szybsze działanie zapytań - Dowiesz się, jak tworzyć indeksy, czytać plan wykonania i rozpoznawać wąskie gardła, dzięki czemu usprawnisz zapytania pracujące na dużych tabelach i ograniczysz niepotrzebne obciążenie serwera.

icon

Praktyczna praca z widokami - Nauczysz się budować widoki oparte na złączeniach i podzapytaniach, aktualizować dane przez widoki oraz rozumieć zastosowanie widoków materializowanych w codziennej pracy z bazą danych.

icon

Pewność w typach danych - Lepiej zrozumiesz konwersję typów, pracę z danymi tekstowymi i bardziej zaawansowane typy danych, więc unikniesz błędów wynikających z niezgodności formatów i niepoprawnych przekształceń.

icon

Nowoczesne techniki analizy - Opanujesz funkcje okna, operatory zestawowe oraz funkcje analityczne takie jak LEAD i LAG, dzięki czemu przygotujesz rankingi, porównania i analizy sekwencji bez rozbudowanych obejść.

icon

Bezpieczniejsze operacje w bazie - Poznasz transakcje, współbieżność, obsługę błędów, role i uprawnienia, więc będziesz lepiej kontrolować ryzyko zmian, chronić wrażliwe dane i przewidywać skutki działań wielu użytkowników.

Program szkolenia

1. Zaawansowane operacje na danych (DML)

Modyfikowanie dużych zbiorów danych wymaga technik wykraczających poza podstawowe instrukcje DML. Uczestnicy wykorzystują INSERT INTO ... SELECT, aktualizacje oparte na podzapytaniach i złączeniach, warunkowe usuwanie danych oraz MERGE do synchronizacji, z naciskiem na bezpieczne praktyki.

  • wstawianie danych z wykorzystaniem INSERT INTO ... SELECT,
  • aktualizacja danych z wykorzystaniem podzapytań i złączeń,
  • usuwanie danych z wykorzystaniem warunków oraz podzapytań,
  • instrukcja MERGE (UPSERT) – synchronizacja danych,
  • dobre praktyki podczas modyfikacji dużych zbiorów danych.

2. Zaawansowane zapytania SELECT

GROUP BY i funkcje agregujące stanowią podstawę pracy z danymi zagregowanymi, ale równie ważne jest precyzyjne sterowanie wynikiem. Ten zakres łączy HAVING, zaawansowane sortowanie, operacje na NULL oraz wyrażenia warunkowe takie jak CASE, COALESCE i NULLIF.

  • grupowanie danych (GROUP BY),
  • funkcje agregujące (COUNT, SUM, AVG, MIN, MAX),
  • filtrowanie grup (HAVING),
  • zaawansowane sortowanie wyników,
  • operacje na wartościach NULL,
  • wyrażenia warunkowe (CASE, COALESCE, NULLIF).

3. Podzapytania i Common Table Expressions (CTE)

Złożone pobieranie danych często zależy od właściwego połączenia zapytania głównego z wynikami pośrednimi. Sekcja obejmuje podzapytania skorelowane i nieskorelowane w SELECT, FROM i WHERE, operatory EXISTS, IN, ANY i ALL, a także CTE oraz konstrukcje rekurencyjne.

  • podzapytania skorelowane i nieskorelowane,
  • podzapytania w klauzulach SELECT, FROM i WHERE,
  • operatory EXISTS, NOT EXISTS, IN, ANY, ALL,
  • Common Table Expressions (WITH),
  • rekurencyjne CTE.

4. Optymalizacja zapytań

Gdy zapytania działają zbyt wolno, kluczowe staje się zrozumienie sposobu pracy silnika bazy. Uczestnicy analizują wpływ indeksów, tworzą i usuwają indeksy, interpretują EXPLAIN oraz EXPLAIN PLAN, identyfikują wąskie gardła i optymalizują zapytania dla dużych zbiorów.

  • indeksy i ich wpływ na wydajność,
  • tworzenie i usuwanie indeksów,
  • analiza planów wykonania (EXPLAIN, EXPLAIN PLAN),
  • identyfikacja wąskich gardeł,
  • optymalizacja zapytań dla dużych zbiorów danych,
  • dobre praktyki tworzenia wydajnych zapytań.

5. Widoki

Widoki porządkują sposób udostępniania danych i ograniczają złożoność zapytań budowanych na tabelach bazowych. W programie znajdują się widoki proste i złożone, użycie złączeń oraz podzapytań, aktualizacja przez widoki, widoki materializowane i ich rola w ochronie danych.

  • tworzenie prostych i złożonych widoków,
  • widoki wykorzystujące złączenia i podzapytania,
  • aktualizacja danych przez widoki,
  • widoki materializowane (w systemach, które je obsługują),
  • zastosowanie widoków do zabezpieczania danych.

6. Praca z typami danych

Praca z danymi o różnej strukturze wymaga poprawnego doboru typów i funkcji przetwarzających wartości. Uczestnicy ćwiczą konwersję typów, operacje na datach i czasie, funkcje tekstowe, przetwarzanie liczb oraz obsługę danych JSON, jeśli wspiera ją silnik bazy.

  • konwersja typów danych,
  • funkcje operujące na datach i czasie,
  • funkcje tekstowe,
  • praca z typami liczbowymi,
  • obsługa danych JSON (jeżeli wspierana przez silnik bazy danych).

7. Funkcje analityczne

Funkcje okna pozwalają analizować dane bez utraty szczegółowości pojedynczych wierszy. Sekcja obejmuje OVER oraz funkcje ROW_NUMBER, RANK, DENSE_RANK, NTILE, LEAD, LAG, FIRST_VALUE i LAST_VALUE, a także sumy narastające, średnie kroczące i operatory zbiorów.

  • funkcje okna (OVER),
  • ROW_NUMBER, RANK, DENSE_RANK, NTILE,
  • LEAD i LAG,
  • FIRST_VALUE i LAST_VALUE,
  • sumy narastające i średnie kroczące,
  • operatory zbiorów (UNION, UNION ALL, INTERSECT, EXCEPT).

8. Procedury, funkcje i automatyzacja

Automatyzacja logiki po stronie bazy opiera się na procedurach, funkcjach i reakcjach na zdarzenia. Omawiane jest tworzenie procedur składowanych i funkcji użytkownika, użycie parametrów wejściowych oraz wyjściowych, obsługa wyjątków, debugowanie i podstawy wyzwalaczy.

  • tworzenie procedur składowanych,
  • funkcje użytkownika,
  • parametry wejściowe i wyjściowe,
  • obsługa wyjątków,
  • debugowanie procedur,
  • podstawy tworzenia wyzwalaczy (Triggers).

9. Transakcje i współbieżność

Spójność danych w środowisku wielodostępnym wymaga świadomego zarządzania przebiegiem operacji. Uczestnicy pracują z BEGIN, COMMIT i ROLLBACK, analizują poziomy izolacji oraz blokady, a także poznają obsługę błędów wspierającą poprawne działanie transakcji.

  • zarządzanie transakcjami (BEGIN, COMMIT, ROLLBACK),
  • poziomy izolacji transakcji,
  • blokady i współbieżność,
  • obsługa błędów,
  • zapewnienie spójności danych.

10. Bezpieczeństwo i dobre praktyki

Bezpieczna praca z bazą danych łączy kontrolę dostępu z poprawnym stylem tworzenia kodu. Sekcja obejmuje role i uprawnienia użytkowników, ochronę danych wrażliwych, ryzyka związane z Dynamic SQL, zabezpieczenia przed SQL Injection, audyt oraz zasady utrzymania kodu SQL.

  • role i uprawnienia użytkowników,
  • zabezpieczanie danych wrażliwych,
  • Dynamic SQL – możliwości i zagrożenia,
  • ochrona przed SQL Injection,
  • podstawy audytu operacji na bazie danych,
  • dobre praktyki projektowania i utrzymania kodu SQL.

11. Warsztat praktyczny

Punktem wyjścia są wymagania biznesowe, które uczestnicy przekładają na rozwiązania SQL dla rzeczywistych problemów. Budują złożone zapytania z użyciem CTE i funkcji okna, a następnie doskonalą je przez analizę planów wykonania i świadomą optymalizację.

  • analiza wymagań biznesowych,
  • budowa złożonych zapytań SQL,
  • wykorzystanie CTE i funkcji okna,
  • optymalizacja zapytań,
  • analiza planów wykonania,
  • rozwiązywanie rzeczywistych problemów z wykorzystaniem SQL.

Jakie są wymagania wstępne do udziału w szkoleniu?

icon

Podstawy SQL SELECT - Powinieneś swobodnie pisać proste zapytania SELECT, wybierać kolumny, filtrować dane klauzulą WHERE i sortować wyniki, aby skupić się na bardziej złożonych technikach.

icon

Znajomość prostych złączeń - Powinieneś rozumieć, jak łączyć dane z co najmniej dwóch tabel przy użyciu podstawowych JOIN, ponieważ dalsza praca będzie opierać się na bardziej rozbudowanych zapytaniach.

icon

Praca na tabelach i rekordach - Powinieneś rozumieć pojęcia tabeli, wiersza, kolumny i klucza oraz wiedzieć, jak odczytywać strukturę prostych baz danych, by łatwiej analizować przykłady podczas szkolenia.

icon

Podstawy modyfikacji danych - Powinieneś znać podstawowe instrukcje INSERT, UPDATE i DELETE w prostych przypadkach, aby podczas szkolenia skupić się na ich bardziej zaawansowanym i bezpiecznym użyciu.