Résumé

Effectué

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_ARRAYAGGOPENJSONet JSON_VALUE pour 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_SIMILARITYet JARO_WINKLER_DISTANCE
  • Créer des tableaux de graphes et écrire des requêtes en utilisant l’opérateur MATCH et SHORTEST_PATH pour 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, THROW et 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 OVER clauses permettent les calculs analytiques sans regrouper les lignes. Utilisez-les au lieu des self-joins pour le calcul des totaux et des classements
  • JSON_OBJECT et JSON_ARRAYAGG construisent JSON à partir de données relationnelles, tandis que OPENJSON décompose JSON en lignes relationnelles
  • JARO_WINKLER_DISTANCE est optimisé pour la correspondance de noms ; EDIT_DISTANCE_SIMILARITY fonctionne mieux pour les chaînes plus longues
  • Vérifiez toujours @@TRANCOUNT avant ROLLBACK dans des CATCH blocs pour traiter les cas où aucune transaction n’est active
  • Combiner SET XACT_ABORT ON avec TRY...CATCH pour la protection complète des transactions

Learn more