Shrnutí
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, aJSON_VALUEk 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_SIMILARITYaJARO_WINKLER_DISTANCE - Vytvořit tabulky grafu a psát dotazy pomocí operátoru
MATCHpro procházení relací aSHORTEST_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í chybTHROWa 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
OVERklauzulemi 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_OBJECTaJSON_ARRAYAGGvytváří JSON z relačních dat, zatímcoOPENJSONzpracovává JSON do relačních řádků. -
JARO_WINKLER_DISTANCEje optimalizovaná pro porovnávání názvů;EDIT_DISTANCE_SIMILARITYfunguje lépe pro delší řetězce. - Vždy zkontrolujte
@@TRANCOUNTpředROLLBACKvCATCHblocích pro řešení případů, kdy není aktivní žádná transakce. - Kombinujte
SET XACT_ABORT ONaTRY...CATCHpro úplnou ochranu transakcí