Shrnutí

Dokončeno

V tomto modulu jste se naučili pokročilé techniky T-SQL, které vám pomůžou psát výraznější, efektivnější a udržovatelný databázový kód. Tyto funkce řeší běžné scénáře vývoje databází zahrnující komplexní analýzy, hierarchická data, zpracování JSON a zpracování chyb.

Naučili jste se:

  • Zápis běžných tabulkových výrazů (CTE) pro uspořádání složitých dotazů a použití rekurzivních vzorů pro procházení hierarchických datových struktur
  • Použití funkcí okna pro řazení, průběžné součty, klouzavé průměry a analytické výpočty, které zachovávají podrobnosti na úrovni řádků
  • Použití funkcí JSON, včetně JSON_OBJECT, JSON_ARRAY, JSON_ARRAYAGGOPENJSON, a JSON_VALUE k analýze, vytvoření a transformaci dat JSON
  • Implementace regulárních výrazů pomocí REGEXP_LIKE, , REGEXP_REPLACEREGEXP_SUBSTRa souvisejících funkcí pro porovnávání vzorů a manipulaci s textem
  • Vyhledání přibližných shod pomocí přibližných řetězcových funkcí, jako je EDIT_DISTANCE, EDIT_DISTANCE_SIMILARITYa JARO_WINKLER_DISTANCE
  • Vytvořit tabulky grafu a psát dotazy pomocí operátoru MATCH pro procházení relací a SHORTEST_PATH
  • Napište korelované poddotazy pro porovnávání řádků po řádcích, kontroly existence a výpočty jednotlivých řádků
  • Implementujte strukturované zpracování chyb pomocí TRY...CATCHfunkcí pro zpracování chybTHROW a efektivní správou transakcí

Klíčové poznatky

  • Rekurzivní CTE jsou standardním přístupem pro procházení hierarchických dat, jako jsou organizační diagramy nebo struktury fakturovaných materiálů.
  • Funkce oken s OVER klauzulemi umožňují analytické výpočty bez sloučení řádků. Používejte je místo sebespojů pro probíhající součty a řazení.
  • JSON_OBJECT a JSON_ARRAYAGG vytváří JSON z relačních dat, zatímco OPENJSON zpracovává JSON do relačních řádků.
  • JARO_WINKLER_DISTANCE je optimalizovaná pro porovnávání názvů; EDIT_DISTANCE_SIMILARITY funguje lépe pro delší řetězce.
  • Vždy zkontrolujte @@TRANCOUNT před ROLLBACK v CATCH blocích pro řešení případů, kdy není aktivní žádná transakce.
  • Kombinujte SET XACT_ABORT ON a TRY...CATCH pro úplnou ochranu transakcí

Více informací