Saltar al contenido

Expresiones de Tablas Comunes (CTE) con ejemplos practicos


las Expresiones de Tablas Comunes, utilizan el comando With de SQL , también llamada CTE en forma abreviada, es un conjunto de resultados con nombre temporal al que puede hacer referencia dentro de una instrucciones DML ademas vista. estas intrucciones funcionan en mysql , oracle o sql server en cualquiera de sus versiones todas.

¿Has sentido alguna vez que tus consultas SQL son demasiado complicadas y difíciles de entender? ¿Te gustaría mejorar la claridad y la eficacia de tu código? Las Tablas Comunes (CTE) son la clave que estabas buscando.

Índice

    Que es es una Expresiones de Tablas Comunes (CTE)?

    Las CTE, conocidas como «Common Table Expressions» en inglés, son una herramienta revolucionaria en SQL que te permite definir y reutilizar subconsultas dentro de consultas más amplias. Son como pequeñas píldoras de sabiduría que simplifican y organizan tus consultas de manera brillante.

    Expresiones de Tablas Comunes O CTE de sql como funcionan

    Ventajas de Utilizar expresión de tabla común:

    • Claridad: Las CTE simplifican la lectura y comprensión de tus consultas, fragmentando las más complejas en partes más manejables.
    • Reutilización de Código: Puedes emplear las CTE en múltiples consultas, evitando así la redundancia y mejorando la eficiencia.
    • Modularidad: Con las CTE, puedes crear consultas modulares que se pueden combinar y ajustar con facilidad.

    Situacion:

    Yo solia ser un desarrollador SQL que solía luchar con consultas monstruosas, reportes interminables , lo que me provocaba mucho codigo sql poco legibles. Un día, descubri como funcionan las expresiones de tablas y mi vida cambió por completo. luego de esto, pude escribir consultas SQL más claras y eficientes en menos tiempo.

    Aqui te presentare los escenarios mas comunes en los cuales usaras los CTE.

    Ejemplos Prácticos:

    1. Simplificar la Filtración y Ordenación de Datos:

    Sin CTE:

    SELECT *
    FROM productos
    WHERE precio > 100
    ORDER BY precio DESC;

    Con CTE:

    WITH productos_filtrados AS (
      SELECT *
      FROM productos
      WHERE precio > 100
    )
    SELECT *
    FROM productos_filtrados
    ORDER BY precio DESC;

    Explicación: La CTE productos_filtrados crea una tabla temporal con productos cuyo precio es superior a 100€. Luego, la consulta principal selecciona y ordena estos datos por precio descendente. En este ejemplo podemos ver el uso del comando WHERE de sql y la clausula Order by

    2. Agregar Valor con Cálculos:

    Sin CTE:

    SELECT AVG(precio) AS promedio_precio,
           SUM(precio) AS total_precio
    FROM productos;

    Con CTE:

    WITH precios_calculados AS (
      SELECT AVG(precio) AS promedio_precio,
             SUM(precio) AS total_precio
      FROM productos
    )
    SELECT *
    FROM precios_calculados;

    Explicación: La CTE precios_calculados calcula el promedio y la suma de los precios de los productos. La consulta principal simplemente selecciona estos valores calculados.

    3. Facilitar la Unión de Tablas:

    Sin CTE:

    SELECT p.nombre, c.nombre AS categoria
    FROM productos p
    INNER JOIN categorias c ON p.categoria_id = c.id;

    Con CTE:

    WITH productos_categorias AS (
      SELECT p.nombre, c.nombre AS categoria
      FROM productos p
      INNER JOIN categorias c ON p.categoria_id = c.id
    )
    SELECT *
    FROM productos_categorias;

    Explicación: La CTE productos_categorias realiza la unión entre las tablas productos y categorias, simplificando así la consulta principal. Aqui en este ejemplo INNER JOIN de sql podemos ver como el CTE se simplifica.

    4. Crear Vistas Temporales:

    Con CTE:

    WITH productos_vista AS (
      SELECT *
      FROM productos
      WHERE precio > 100
    )
    SELECT *
    FROM productos_vista;

    Explicación: La CTE productos_vista crea una vista temporal que muestra solo los productos con un precio superior a 100€. La consulta principal selecciona y muestra los datos de esta vista.

    Conclusión:

    Las CTE son la llave maestra que te permite abrir las puertas de la eficiencia y la claridad en SQL. ¡Aprende a dominarlas y llevarás tus habilidades en SQL al siguiente nivel!

    Recursos Adicionales:

    ¡Esperamos que este artículo haya sido una revelación para ti sobre el poder oculto de las CTE en SQL!