Resumen

Completado

En este módulo, ha aprendido técnicas avanzadas de T-SQL que le ayudan a escribir código de base de datos más expresivo, eficaz y fácil de mantener. Estas funcionalidades abordan escenarios comunes de desarrollo de bases de datos que implican análisis complejos, datos jerárquicos, procesamiento JSON y control de errores.

Ha aprendido a:

  • Escribir expresiones de tabla comunes (CTE) para organizar consultas complejas y usar patrones recursivos para atravesar estructuras de datos jerárquicas
  • Aplicación de funciones de ventana para clasificaciones, totales acumulados, medias móviles y cálculos analíticos que conservan el detalle a nivel de fila
  • Uso de funciones JSON como JSON_OBJECT, JSON_ARRAY, JSON_ARRAYAGG, OPENJSONy JSON_VALUE para analizar, construir y transformar datos JSON
  • Implementa expresiones regulares con REGEXP_LIKE, REGEXP_REPLACE, REGEXP_SUBSTR y funciones relacionadas para la coincidencia de patrones y la manipulación de texto
  • Buscar coincidencias aproximadas mediante funciones de cadena aproximadas como EDIT_DISTANCE, EDIT_DISTANCE_SIMILARITYy JARO_WINKLER_DISTANCE
  • Creación de tablas de grafos y escritura de consultas mediante el MATCH operador y SHORTEST_PATH para el recorrido de relaciones
  • Escribir subconsultas correlacionadas para comparaciones fila a fila, comprobaciones de existencia y cálculos fila a fila
  • Implementación del control de errores estructurado con TRY...CATCH, funciones de error, THROWy administración de transacciones adecuada

Conclusiones clave

  • Los CTE recursivos son el enfoque estándar para atravesar datos jerárquicos como organigramas o estructuras de facturación de materiales
  • Las funciones de ventana con cláusulas OVER permiten hacer cálculos analíticos sin contraer las filas. Úselas en lugar de las autocombinaciones para ejecutar totales y clasificaciones
  • JSON_OBJECT y JSON_ARRAYAGG construyen JSON a partir de datos relacionales, mientras OPENJSON analiza el JSON en filas relacionales
  • JARO_WINKLER_DISTANCE está optimizado para la coincidencia de nombres; EDIT_DISTANCE_SIMILARITY funciona mejor para cadenas más largas
  • Siempre compruebe @@TRANCOUNT antes de ROLLBACK en los bloques de CATCH para controlar los casos en los que no hay ninguna transacción activa.
  • Combinar SET XACT_ABORT ON con TRY...CATCH para la protección completa de transacciones

Aprende más