icon icon

Kurs SQL zaawansowany - wykorzystanie zaawansowanych opcji funkcji, procedur i zmiennych

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

Precyzyjne zapytania - Nauczysz się pisać złożone zapytania SELECT z WHERE, GROUP BY, HAVING i ORDER BY, dzięki czemu samodzielnie wyciągniesz z bazy dokładnie te dane, których potrzebujesz.

icon

Bezpieczny dynamiczny SQL - Poznasz dynamiczny SQL oraz sposoby ograniczania ryzyka SQL Injection, więc zaczniesz tworzyć elastyczne zapytania i procedury bez narażania aplikacji na typowe błędy bezpieczeństwa.

icon

Sprawne podzapytania - Przećwiczysz podzapytania zagnieżdżone, skorelowane i operator EXISTS, co pozwoli Ci budować krótsze i trafniejsze rozwiązania tam, gdzie proste JOIN-y nie wystarczają.

icon

Funkcje i procedury - Dowiesz się, kiedy lepiej użyć procedury składowanej, a kiedy funkcji skalarnej lub tabelarycznej, dzięki czemu uporządkujesz logikę SQL i uprościsz ponowne użycie kodu.

icon

Lepszy dobór typów danych - Zrozumiesz różnice między typami liczbowymi, tekstowymi, daty i XML, więc łatwiej zaprojektujesz tabele oraz unikniesz problemów z konwersją, wydajnością i jakością danych.

icon

Sterowanie logiką w SQL - Opanujesz IF oraz pętle WHILE i FOR, co pozwoli Ci tworzyć bardziej zaawansowane skrypty administracyjne i przetwarzające dane bez przenoszenia całej logiki do aplikacji.

icon

Kontrola transakcji - Nauczysz się stosować transakcje zgodnie z zasadą ACID i obsługiwać błędy, dzięki czemu bezpiecznie wykonasz operacje na wielu rekordach bez ryzyka niespójności danych.

icon

Automatyzacja przez wyzwalacze - Poznasz wyzwalacze DML i DDL, więc zautomatyzujesz reakcje na zmiany danych i struktury bazy, np. walidację, audyt lub blokowanie niepożądanych operacji.

Program szkolenia

1. Zaawansowane instrukcje SQL

Tworzenie bardziej rozbudowanych zapytań wymaga łączenia selekcji, modyfikacji danych i konstrukcji pomocniczych. Omawiane są klauzule SELECT, GROUP BY i HAVING, operacje INSERT, UPDATE, DELETE i MERGE, widoki, CTE, Dynamic SQL, bezpieczeństwo oraz kursory i ich alternatywy.

  • zapytania SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY,
  • operacje modyfikujące dane (INSERT, UPDATE, DELETE, MERGE),
  • wykorzystanie instrukcji INSERT INTO ... SELECT,
  • tworzenie i modyfikacja widoków (CREATE VIEW, ALTER VIEW),
  • Common Table Expressions (CTE) i rekurencyjne CTE,
  • Dynamic SQL – zastosowania, parametryzacja i bezpieczeństwo,
  • ochrona przed SQL Injection,
  • kursory – zastosowania oraz nowoczesne alternatywy oparte na operacjach zbiorowych.

2. Podzapytania i operacje na zbiorach

Relacja między podzapytaniami a operatorami zbiorów decyduje o czytelności i efektywności wielu konstrukcji SQL. Sekcja obejmuje podzapytania skorelowane i nieskorelowane, użycie ich w SELECT, FROM i WHERE oraz operatory EXISTS, IN, ANY, ALL, UNION, INTERSECT i EXCEPT.

  • podzapytania skorelowane i nieskorelowane,
  • podzapytania w klauzulach SELECT, FROM i WHERE,
  • operatory EXISTS, NOT EXISTS, IN, ANY, ALL,
  • operatory zbiorów (UNION, UNION ALL, INTERSECT, EXCEPT),
  • wybór optymalnej techniki budowy zapytań.

3. Zmienne i sterowanie przepływem

Sterowanie przepływem pozwala budować logikę wykonania wykraczającą poza pojedyncze zapytanie. Uczestnicy deklarują i wykorzystują zmienne, stosują IF...ELSE, CASE i WHILE, a także poznają TRY...CATCH oraz metody obsługi błędów i komunikatów.

  • deklarowanie zmiennych,
  • przypisywanie wartości,
  • wykorzystanie zmiennych w zapytaniach i procedurach,
  • instrukcje warunkowe (IF...ELSE, CASE),
  • pętle (WHILE),
  • obsługa wyjątków (TRY...CATCH),
  • zarządzanie błędami i komunikatami.

4. Typy danych i ich wykorzystanie

Od właściwego typu danych zależą nie tylko poprawność zapisu, ale też rozmiar i wydajność operacji. Materiał obejmuje typy liczbowe, znakowe, daty i czasu, binarne, XML, JSON, zasady konwersji oraz kryteria doboru typów pod kątem zastosowania.

  • typy liczbowe,
  • typy znakowe (CHAR, VARCHAR, NCHAR, NVARCHAR),
  • typy daty i czasu (DATE, TIME, DATETIME2, DATETIMEOFFSET),
  • typy binarne,
  • dane XML,
  • dane JSON i funkcje JSON (w systemach wspierających tę funkcjonalność),
  • konwersja typów danych,
  • dobór właściwych typów danych pod kątem wydajności.

5. Tabele i struktury pomocnicze

Dobór struktury pomocniczej wpływa na sposób przetwarzania danych pośrednich i obciążenie bazy. Sekcja porównuje tabele tymczasowe lokalne i globalne, zmienne tabelaryczne oraz tabele pamięciowe, wskazując kiedy każda z tych opcji sprawdza się najlepiej.

  • tabele tymczasowe lokalne i globalne,
  • zmienne tabelaryczne,
  • tabele pamięciowe (jeżeli wspierane przez silnik bazy danych),
  • wybór odpowiedniej struktury dla danego scenariusza.

6. Procedury składowane

Procedury składowane służą do kapsułkowania operacji biznesowych wykonywanych w bazie danych. W tej części omawiana jest ich budowa, parametry wejściowe i wyjściowe, zwracanie kodów błędów, użycie Dynamic SQL oraz zasady poprawnego projektowania.

  • zastosowania procedur,
  • budowa procedury składowanej,
  • parametry wejściowe i wyjściowe,
  • zwracanie kodów błędów,
  • Dynamic SQL w procedurach,
  • dobre praktyki projektowania procedur.

7. Funkcje użytkownika

Funkcje użytkownika porządkują powtarzalną logikę i umożliwiają wielokrotne użycie obliczeń w zapytaniach. Zakres obejmuje funkcje skalarne i tabelaryczne, operacje na datach, tekście, liczbach i konwersjach, a także projektowanie własnych funkcji UDF.

  • funkcje skalarne,
  • funkcje tabelaryczne (Inline Table-Valued Functions),
  • wieloinstrukcyjne funkcje tabelaryczne,
  • funkcje operujące na datach i czasie,
  • funkcje tekstowe,
  • funkcje matematyczne,
  • funkcje konwersji,
  • tworzenie własnych funkcji użytkownika.

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

Spójność danych w środowisku wielodostępnym wymaga poprawnego zarządzania transakcjami. Uczestnicy pracują z BEGIN TRANSACTION, COMMIT, ROLLBACK i SAVEPOINT, poznają poziomy izolacji, blokady oraz zasady obsługi błędów przy operacjach współbieżnych.

  • właściwości ACID,
  • BEGIN TRANSACTION, COMMIT, ROLLBACK,
  • punkty zapisu (SAVEPOINT),
  • poziomy izolacji transakcji,
  • blokady i współbieżność,
  • obsługa błędów w transakcjach.

9. Wyzwalacze (Triggers)

Gdy logika ma reagować automatycznie na zmiany danych lub struktury, stosuje się wyzwalacze. Omawiane są triggery DML i DDL, ich zastosowania biznesowe oraz audyt zmian, a także dobre praktyki i ograniczenia wpływające na utrzymanie rozwiązania.

  • wyzwalacze DML (INSERT, UPDATE, DELETE),
  • wyzwalacze DDL (CREATE, ALTER, DROP),
  • zastosowania biznesowe,
  • audyt zmian,
  • dobre praktyki oraz ograniczenia stosowania wyzwalaczy.

10. Wydajność i optymalizacja kodu T-SQL

Wydajność kodu T-SQL ocenia się przez sposób wykonania zapytań i wykorzystanie zasobów silnika. Sekcja obejmuje analizę planów wykonania, dobór indeksów, strojenie procedur i funkcji, eliminację typowych wąskich gardeł oraz monitorowanie działania zapytań.

  • analiza planów wykonania,
  • wykorzystanie indeksów,
  • optymalizacja procedur i funkcji,
  • eliminacja typowych problemów wydajnościowych,
  • monitorowanie zapytań.

11. Warsztat praktyczny

Na warsztacie uczestnicy łączą zagadnienia z całego programu w spójne rozwiązania po stronie bazy danych. Tworzą procedury, funkcje i wyzwalacze, wdrażają transakcje z obsługą błędów, stosują CTE oraz Dynamic SQL, a następnie analizują i optymalizują gotowy kod.

  • tworzenie procedur składowanych i funkcji,
  • budowa wyzwalaczy,
  • implementacja transakcji i obsługi błędów,
  • wykorzystanie CTE oraz Dynamic SQL,
  • analiza i optymalizacja kodu,
  • rozwiązanie kompleksowego zadania obejmującego programowanie po stronie bazy danych.

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

icon

Podstawy SQL - Powinieneś swobodnie korzystać z prostych zapytań SELECT, filtrowania danych i podstawowych JOIN-ów, aby podczas szkolenia skupić się na zagadnieniach zaawansowanych.

icon

Praca na tabelach - Powinieneś rozumieć, czym są tabele, rekordy, kolumny i klucze oraz umieć wykonywać proste operacje INSERT, UPDATE i DELETE w relacyjnej bazie danych.

icon

Znajomość relacyjnych baz - Powinieneś znać podstawowe pojęcia relacyjnych baz danych, takie jak relacje, warunki łączenia i normalne użycie typów danych, by łatwo śledzić przykłady z kursu.

icon

Doświadczenie praktyczne - Warto, abyś miał już kontakt z pracą w środowisku bazodanowym i uruchamianiem zapytań SQL, ponieważ szkolenie rozwija umiejętności praktyczne, a nie uczy od zera.