Definicja #
T-SQL (Transact-SQL) to zastrzeżone rozszerzenie języka SQL opracowane przez Microsoft i używane w systemach SQL Server (w tym Azure SQL Database i Azure Synapse Analytics). T-SQL rozszerza standardowy SQL (ISO/ANSI SQL) o konstrukcje proceduralne i dodatkowe funkcje.
Kluczowe rozszerzenia T-SQL względem standardowego SQL:
- Zmienne — deklaracja i przypisanie:
DECLARE @OrderId INT = 100; - Konstrukcje sterujące —
IF...ELSE,WHILE,BREAK,CONTINUE,GOTO - Procedury składowane —
CREATE PROCEDURE— wykonywalne bloki kodu po stronie bazy - Funkcje użytkownika —
CREATE FUNCTION— skalarne (zwracają jedną wartość) i tabelaryczne (zwracają zestaw wierszy) - Triggery —
CREATE TRIGGER— automatyczne wykonanie kodu przy INSERT/UPDATE/DELETE - Transakcje —
BEGIN TRANSACTION,COMMIT,ROLLBACK— kontrola atomowości operacji - Try/Catch — obsługa błędów:
BEGIN TRY...END TRY BEGIN CATCH...END CATCH - Common Table Expressions (CTE) —
WITH cte AS (...) SELECT...— zapytania hierarchiczne i czytelne wieloetapowe - Window Functions —
ROW_NUMBER(),RANK(),LAG(),LEAD(),SUM() OVER() - Typy danych — specyficzne:
UNIQUEIDENTIFIER,DATETIMEOFFSET,NVARCHAR(MAX),XML; JSON nie jest natywnym typem kolumny — SQL Server przechowuje JSON wNVARCHARi operuje nim przez funkcje (OPENJSON, JSON_VALUE, JSON_MODIFY)
Zastosowania #
T-SQL stosuje się do:
- Zapytań i raportowania z baz danych SQL Server — SELECT z joinsami, agregacjami i window functions
- Pisania procedur składowanych — enkapsulacja logiki biznesowej po stronie bazy (walidacja, obliczenia, batch processing)
- Migracji i transformacji danych — ETL procesów przenoszących i przekształcających dane między systemami
- Optymalizacji zapytań — analiza planów wykonania (Execution Plan), indeksowanie, statystyki
- Administracji bazą danych — backup, restore, zarządzanie uprawnieniami, monitoring wydajności
Ścieżka nauki #
T-SQL jest podstawą pracy z SQL Server — niezbędna umiejętność dla DBA, Data Engineerów i backendowców w ekosystemie Microsoft.
Zacznij od:
- Podstawy SQL:
SELECT,FROM,WHERE,JOIN,GROUP BY,ORDER BY - Narzędzia: SQL Server Management Studio (SSMS) (bezpłatne) lub Azure Data Studio
- Instalacja: SQL Server Developer Edition (bezpłatna) lub SQL Server Express
- T-SQL extensions: zmienne (
DECLARE),IF/WHILE, transakcje (BEGIN TRAN/COMMIT)
Następnie poznaj:
- Procedury składowane i funkcje — parametry wejściowe/wyjściowe,
RETURN, obsługa błędów TRY/CATCH - Window Functions —
ROW_NUMBER,RANK,SUM OVER PARTITION BY— kluczowe w raportowaniu - Plany wykonania — Execution Plan w SSMS, identyfikacja table/index scans vs seeks
- Indeksy — clustered, non-clustered, columnstore, covering indexes — optymalizacja zapytań
- CTE i podzapytania —
WITH cte AS, rekurencyjne CTE dla danych hierarchicznych
FAQ #
- Czym różni się T-SQL od standardowego SQL?
- Standardowy SQL (ANSI SQL) to specyfikacja języka zapytań relacyjnych. T-SQL to implementacja Microsoftu dla SQL Server, która rozszerza ANSI SQL o konstrukty proceduralne (IF, WHILE, procedury składowane, triggery, TRY/CATCH). Każda baza danych ma swój dialekt — Oracle używa PL/SQL, PostgreSQL PL/pgSQL.
- Czy T-SQL działa w Azure SQL Database?
- Tak — Azure SQL Database jest oparty na SQL Server i obsługuje T-SQL. Większość kodu T-SQL (procedury, funkcje, CTE, window functions) działa bez zmian w chmurze. Azure Synapse Analytics (dawniej SQL DW) obsługuje podzbiór T-SQL zoptymalizowany pod kątem analitycznych obciążeń MPP.
- Czy programista .NET musi znać T-SQL?
- Znajomość T-SQL jest bardzo pomocna dla .NET developera — pozwala pisać efektywne zapytania, optymalizować ORM-generated SQL i debugować problemy z wydajnością. Nie jest obowiązkowa (Entity Framework generuje SQL automatycznie), ale odróżnia średniego developera od seniora.
- Ile zarabia SQL Developer / DBA w Polsce?
- SQL Developer ze znajomością T-SQL zarabia od 8 000 do 15 000 zł brutto. Database Administrator (DBA) SQL Server od 10 000 do 20 000 zł. Specjaliści od optymalizacji zapytań i performance tuning są bardzo cenieni, zwłaszcza w finansach i ubezpieczeniach.