Résumé
Dans ce module, vous avez appris des techniques T-SQL avancées qui vous aident à écrire du code de base de données plus expressif, efficace et gérable. Ces fonctionnalités traitent des scénarios courants de développement de base de données impliquant des analyses complexes, des données hiérarchiques, un traitement JSON et une gestion des erreurs.
Vous avez appris à :
- Écrire des expressions de table courantes (CTEs) pour organiser des requêtes complexes et utiliser des modèles récursifs pour parcourir des structures de données hiérarchiques
- Appliquer des fonctions de fenêtre pour le classement, les totaux cumulatifs, les moyennes mobiles et les calculs analytiques qui préservent les détails au niveau des lignes
- Utiliser des fonctions JSON, notamment
JSON_OBJECT, ,JSON_ARRAYJSON_ARRAYAGGOPENJSONetJSON_VALUEpour analyser, construire et transformer des données JSON - Implémenter des expressions régulières avec
REGEXP_LIKE,REGEXP_REPLACE,REGEXP_SUBSTRet des fonctions associées pour la mise en correspondance des modèles et la manipulation de texte - Rechercher des correspondances approximatives à l’aide de fonctions de chaîne approximatives telles que
EDIT_DISTANCE,EDIT_DISTANCE_SIMILARITYetJARO_WINKLER_DISTANCE - Créer des tableaux de graphes et écrire des requêtes en utilisant l’opérateur
MATCHetSHORTEST_PATHpour parcourir les relations. - Écrire des sous-requêtes corrélées pour les comparaisons de lignes par ligne, les vérifications d’existence et les calculs par ligne
- Implémenter la gestion structurée des erreurs avec
TRY...CATCH, les fonctions d'erreur,THROWet une gestion appropriée des transactions
Points clés à prendre
- Les CTE récursives sont l’approche standard pour parcourir des données hiérarchiques telles que des graphiques organisationnels ou des structures de facturation de matériaux
- Les fonctions fenêtre avec
OVERclauses permettent les calculs analytiques sans regrouper les lignes. Utilisez-les au lieu des self-joins pour le calcul des totaux et des classements -
JSON_OBJECTetJSON_ARRAYAGGconstruisent JSON à partir de données relationnelles, tandis queOPENJSONdécompose JSON en lignes relationnelles -
JARO_WINKLER_DISTANCEest optimisé pour la correspondance de noms ;EDIT_DISTANCE_SIMILARITYfonctionne mieux pour les chaînes plus longues - Vérifiez toujours
@@TRANCOUNTavantROLLBACKdans desCATCHblocs pour traiter les cas où aucune transaction n’est active - Combiner
SET XACT_ABORT ONavecTRY...CATCHpour la protection complète des transactions