Sammanfattning

Slutförd

I den här modulen har du lärt dig avancerade T-SQL-tekniker som hjälper dig att skriva mer uttrycksfull, effektiv och underhållsbar databaskod. De här funktionerna hanterar vanliga scenarier för databasutveckling som omfattar komplex analys, hierarkiska data, JSON-bearbetning och felhantering.

Du har lärt dig att:

  • Skriva vanliga tabelluttryck (CTE) för att organisera komplexa frågor och använda rekursiva mönster för att korsa hierarkiska datastrukturer
  • Använda fönsterfunktioner för rangordning, löpande summor, glidande medelvärden och analysberäkningar som bevarar detaljer på radnivå
  • Använda JSON-funktioner som JSON_OBJECT, JSON_ARRAY, JSON_ARRAYAGG, OPENJSONoch JSON_VALUE för att parsa, konstruera och transformera JSON-data
  • Implementera reguljära uttryck med REGEXP_LIKE, REGEXP_REPLACE, REGEXP_SUBSTRoch relaterade funktioner för mönstermatchning och textmanipulering
  • Hitta ungefärliga matchningar med hjälp av fuzzy-strängfunktioner som EDIT_DISTANCE, EDIT_DISTANCE_SIMILARITYoch JARO_WINKLER_DISTANCE
  • Skapa graftabeller och skriva frågor med operatorn MATCH och SHORTEST_PATH för relationsbläddering
  • Skriva korrelerade underfrågor för jämförelser rad för rad, existenskontroller och beräkningar per rad
  • Implementera strukturerad felhantering med TRY...CATCH, felfunktioner och THROWkorrekt transaktionshantering

Viktiga lärdomar

  • Rekursiva CTE är standardmetoden för att traversera hierarkiska data som organisationsscheman eller strukturer för materialförteckningar.
  • Fönsterfunktioner med OVER -satser möjliggör analysberäkningar utan att komprimera rader. Använd dem i stället för självkopplingar för att beräkna summor och rankningsordningar.
  • JSON_OBJECT och JSON_ARRAYAGG konstruerar JSON från relationsdata, medan OPENJSON tolkar JSON till relationsrader
  • JARO_WINKLER_DISTANCE är optimerad för namnmatchning. EDIT_DISTANCE_SIMILARITY fungerar bättre för längre strängar
  • Kontrollera alltid @@TRANCOUNT före ROLLBACK i CATCH blocken för att hantera fall där ingen transaktion är aktiv
  • Kombinera SET XACT_ABORT ON med TRY...CATCH för fullständigt transaktionsskydd

Lära sig mer