Resumen
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,OPENJSONyJSON_VALUEpara analizar, construir y transformar datos JSON - Implementa expresiones regulares con
REGEXP_LIKE,REGEXP_REPLACE,REGEXP_SUBSTRy 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_SIMILARITYyJARO_WINKLER_DISTANCE - Creación de tablas de grafos y escritura de consultas mediante el
MATCHoperador ySHORTEST_PATHpara 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
OVERpermiten hacer cálculos analíticos sin contraer las filas. Úselas en lugar de las autocombinaciones para ejecutar totales y clasificaciones -
JSON_OBJECTyJSON_ARRAYAGGconstruyen JSON a partir de datos relacionales, mientrasOPENJSONanaliza el JSON en filas relacionales -
JARO_WINKLER_DISTANCEestá optimizado para la coincidencia de nombres;EDIT_DISTANCE_SIMILARITYfunciona mejor para cadenas más largas - Siempre compruebe
@@TRANCOUNTantes deROLLBACKen los bloques deCATCHpara controlar los casos en los que no hay ninguna transacción activa. - Combinar
SET XACT_ABORT ONconTRY...CATCHpara la protección completa de transacciones