HACK A BOSS
FormaciónEvaluacionesPerfil
Volver
  • En directo

SQL avanzado: rendimiento y programabilidad

6h de clase en directo·HACK A BOSS·Español

Skills que aprenderás

  • SQL

Convocatorias

Necesitas un plan activo

Para acceder a los cursos en directo necesitas un plan activo. Estamos trabajando para que los planes estén disponibles pronto — ¡mantente atento!

No hay convocatorias abiertas ahora mismo, pero no te pierdas la oportunidad: guarda este curso y te avisamos en cuanto se abra una convocatoria.

Descripción

Objetivos

Temario

Requisitos técnicos

Conocimientos previos

Detalles de la convocatoria

Recursos

No hay recursos disponibles todavía para esta convocatoria

Curso avanzado de SQL orientado a desarrolladores y analistas que ya dominan JOINs, subconsultas y vistas, y necesitan dominar las técnicas que distinguen un uso amateur de uno profesional: window functions para análisis sin perder el detalle de filas, CTEs para modularizar consultas complejas, diseño de índices compuestos basado en planes de ejecución, procedimientos almacenados con transacciones y manejo de errores, control de concurrencia con niveles de aislamiento, y normalización hasta 3FN. Al finalizar, el participante será capaz de diseñar esquemas eficientes, optimizar consultas lentas y encapsular lógica de negocio compleja en la base de datos.

Al finalizar el curso, el participante será capaz de:

  • Aplicar funciones de ventana para cálculos sobre conjuntos de filas relacionadas
  • Construir CTEs y CTEs recursivas para estructurar consultas complejas
  • Diseñar índices y analizar planes de ejecución para optimizar consultas lentas
  • Implementar procedimientos almacenados y funciones definidas por el usuario
  • Gestionar transacciones con los principios ACID y los niveles de aislamiento
  • Diseñar esquemas relacionales normalizados hasta 3FN y evaluar las ventajas de la desnormalización
  1. Window functions Qué son y cuándo usarlas frente a GROUP BY; PARTITION BY y ORDER BY dentro de OVER; funciones de ranking: ROW_NUMBER, RANK, DENSE_RANK, NTILE; funciones de valor: LAG, LEAD, FIRST_VALUE, LAST_VALUE; funciones de agregación con ventana: SUM, AVG con frame ROWS BETWEEN; casos prácticos: media móvil, ranking dentro de categoría, diferencia entre fila y anterior
  2. CTEs y recursividad WITH como alternativa a subconsultas y vistas temporales; CTEs encadenadas: definir varios WITH en una misma consulta; CTEs recursivas: anchor, parte recursiva y condición de parada; recorrido de jerarquías y árboles: calcular nivel y ruta desde la raíz; cuándo usar CTE vs. subconsulta vs. vista
  3. Índices y optimización de consultas Cómo funciona un índice B-Tree; índices simples y compuestos: orden de columnas (igualdad antes que rango); EXPLAIN: campos type, key, rows, Extra; tipos de acceso: ALL, index, range, ref, const; Using filesort y Using temporary; índices cubrientes (covering indexes); cuándo un índice no se usa
  4. Procedimientos almacenados y funciones Procedimientos: parámetros IN, OUT, INOUT; estructuras de control: IF/ELSE, CASE, WHILE, LOOP, REPEAT; DECLARE: variables locales y cursores; manejo de excepciones: DECLARE HANDLER FOR SQLEXCEPTION/SQLWARNING; funciones definidas por el usuario: retorno escalar y uso en SELECT; cuándo usar lógica en la base de datos vs. en la aplicación
  5. Transacciones y concurrencia Propiedades ACID: Atomicidad, Consistencia, Aislamiento, Durabilidad; START TRANSACTION, COMMIT, ROLLBACK, SAVEPOINT; niveles de aislamiento InnoDB: READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ, SERIALIZABLE; anomalías: dirty read, non-repeatable read, phantom read; bloqueo pesimista: SELECT FOR UPDATE; bloqueo optimista: versioning con columna de versión
  6. Normalización y diseño de esquemas 1FN: atomicidad y eliminación de grupos repetidos; 2FN: dependencias parciales y claves compuestas; 3FN: dependencias transitivas; proceso de normalización paso a paso sobre un esquema desnormalizado; cuándo desnormalizar de forma controlada: campos precalculados, tablas de lectura intensiva; integridad referencial y estrategias de cascada
  • MySQL Server 8.0+ instalado localmente o acceso a una instancia remota
  • MySQL Workbench instalado como cliente gráfico
  • Base de datos de práctica con volumen suficiente para observar diferencias de rendimiento (mínimo 100.000 filas en las tablas principales)

→ SQL02 — SQL intermedio: JOINs, subconsultas y vistas (Intermedio, 6h)

  • Combinar datos de múltiples tablas con INNER JOIN, LEFT JOIN y RIGHT JOIN
  • Agrupar con GROUP BY y filtrar agregados con HAVING
  • Construir subconsultas en SELECT, FROM y WHERE
  • Crear vistas como capa de abstracción sobre consultas complejas