
O subquery (sau subinterogare) este o interogare SQL incadrată într-o altă interogare.
Subinterogările sunt folosite pentru a returna un set de date care va fi utilizat de interogarea principală.
Acestea pot fi utilizate în clauze precum SELECT, FROM, WHERE, HAVING, iar în funcție de utilizare acestea pot fi: simple sau corelate.
MERGE în T-SQL permite executarea unor operațiuni de INSERT, UPDATE și DELETE într-o singură comandă, bazată pe o condiție de potrivire (MATCH) între două seturi de date. Aceasta este utilă în scenariile în care trebuie să sincronizăm două tabele, cum ar fi actualizarea unei tabele de destinație pe baza unei surse de date.
Un cursor în SQL Server este un mecanism utilizat pentru a parcurge înregistrările unui set de rezultate, unul câte unul (row-based). Spre deosebire de operațiile set-based (care lucrează cu toate rândurile simultan, ex: UPDATE), cursorul permite manipularea individuală a fiecărei înregistrare.
CROSS APPLY și OUTER APPLY sunt operatori folosiți pentru a îmbina o tabelă principală cu o funcție tabelară sau o subinterogare care depinde de rândurile din acea tabelă.
Clauza OVER() în SQL Server este folosită împreună cu funcții de tip window (cum ar fi SUM(),COUNT(), MIN(), MAX(), AVG(), etc.) pentru a efectua calcule peste un „window” (fereastră) de rânduri fără să agregi întreaga tabelă.
Daca vrei sa numerotezi inregistrarile la nivel de partitie atunci ROW_NUMBER() este ceea ce trebuie sa folosesti.
Daca ai nevoie de o valoare anterioara fata de inregistrarea curenta, atunci functia LAG() te poate ajuta fara sa fi nevoit sa faci un JOIN.
Exemplu practic: Vreau sa vad totalul vânzărilor pe fiecare agent pe luna + comparativ cu anul trecut
Daca ai nevoie de valoarea urmatoare fata de inregistrarea curenta, atunci functia LEAD() te poate ajuta fara sa fi nevoit sa faci un JOIN.
Exemplu practic:
- Analiză de comportament: cât de des face clientul tranzacții.
- Detectare fraudă: tranzacții neobișnuit de dese sau rare.
- Predictibilitate: poți estima când clientul va face următoarea tranzacție.
- Optimizare campanii: trimite oferte cu 1 zi înainte de o tranzacție obișnuită.
Acest curs urmeaza tematica de certificare Microsoft 70-461: „Interogare Microsoft SQL Server 2012” și 70-761 „Interogare de date cu Transact-SQL”.
Vă rugăm să rețineți - aceste certificari nu mai sunt oferite de Microsoft (retrase in data de 31 ianuarie 2021). Cu toate acestea, cerințele de examen vă permit să înțelegeți mai bine T-SQL.
PARTEA 8
Se referă la : Subqueries, Corelated Queries, MERGE, CURSOR , CROSS APPLY si OUTER APPLY, clauza OVER(), ROW_NUMBER(), LAG() si LEAD().
Fiecare lecție cuprinde aspecte teoretice și practice explicate detaliat pentru a le putea înțelege. De asemenea pentru lecțiile menționate aveți atașate si documente ce conțin scripturile folosite în lecțiile prezentate pentru a exersa și înțelege sintaxa.
Vă recomand să tratați fiecare lecție cu răbdare și să repetați procesul atunci cand unele concepte nu le înțelegeți din prima încercare. De asemenea scripturile atașate vă sunt de folos în a încerca de a le scrie singuri pentru a vă obișnui cu sintaxa SQL (ceea ce vă va ajuta pe viitor).
Nu sunt necesare cunoștințe anterioare.
Există chestionare regulate pentru a vă ajuta să vă amintiți informațiile.
Odată ce ați terminat veți ști cum să creati si sa folositi Tranzactii (cu nivele de izolare specifice pentru a trata problemele de concurenta in functie de cerintele operationale).