Dominando Consultas SQL Esenciales: Ejemplos Prácticos para la Gestión de Datos

Clasificado en Diseño e Ingeniería

Escrito el en español con un tamaño de 6,02 KB

Introducción a las Consultas SQL

Este documento presenta una serie de ejemplos prácticos de consultas SQL, diseñadas para ilustrar diversas operaciones de extracción y manipulación de datos en una base de datos relacional. Desde consultas básicas de selección y agregación hasta el uso de subconsultas y diferentes tipos de JOINs, cada ejemplo está acompañado de su respectiva sentencia SQL, optimizada para claridad y eficiencia.

Consultas SQL Fundamentales

Las siguientes consultas demuestran operaciones básicas para obtener información directa de las tablas.

  • Información de Oficinas: Código y Ciudad

    Obtiene el código y la ciudad de todas las oficinas registradas en la base de datos, excluyendo aquellas con ciudad nula.

    SELECT CodigoOficina, Ciudad FROM oficinas WHERE Ciudad IS NOT NULL;
  • Conteo Total de Empleados

    Calcula el número total de empleados en la compañía.

    SELECT COUNT(CodigoEmpleado) AS TotalEmpleados FROM empleados;
  • Clientes por País

    Muestra el número de clientes que tiene cada país, agrupando los resultados por el nombre del país.

    SELECT Pais, COUNT(CodigoCliente) AS NumeroClientes FROM clientes GROUP BY Pais;
  • Pago Medio en 2007

    Determina el valor promedio de los pagos realizados durante el año 2007.

    SELECT AVG(Total) AS PagoMedio2007 FROM pago WHERE YEAR(Fecha_Pago) = 2007;
  • Pedidos por Estado (Orden Descendente)

    Cuenta cuántos pedidos se encuentran en cada estado, ordenando los resultados de forma descendente por el número de pedidos.

    SELECT Estado, COUNT(CodigoPedido) AS NumeroPedidos FROM pedidos GROUP BY Estado ORDER BY NumeroPedidos DESC;
  • Precios Extremos de Productos

    Identifica el precio de venta más alto y el más bajo entre todos los productos.

    SELECT MAX(Precio_Venta) AS PrecioMaximo, MIN(Precio_Venta) AS PrecioMinimo FROM producto;

Consultas Avanzadas: Subconsultas y Joins

Esta sección explora técnicas más complejas como las subconsultas y las operaciones de JOIN, esenciales para combinar y filtrar datos de múltiples tablas.

Consultas con Subconsultas

Las subconsultas permiten realizar consultas anidadas, donde el resultado de una consulta interna se utiliza en la consulta externa.

  • Cliente con Mayor Límite de Crédito

    Recupera el nombre del cliente que posee el límite de crédito más alto.

    SELECT Nombre_Cliente, Limite_Credito FROM cliente WHERE Limite_Credito = (SELECT MAX(Limite_Credito) FROM cliente);
  • Empleados sin Representación de Clientes

    Lista el nombre, primer apellido y cargo de aquellos empleados que no están asignados como representantes de ventas a ningún cliente.

    SELECT Nombre, Apellido1, Puesto FROM empleado WHERE Codigo_Empleado NOT IN (SELECT Codigo_Empleado_Rep_Ventas FROM cliente WHERE Codigo_Empleado_Rep_Ventas IS NOT NULL);
  • Producto Más Vendido en un Único Pedido

    Encuentra el nombre del producto del cual se han vendido la mayor cantidad de unidades en un solo pedido.

    SELECT Nombre FROM producto WHERE Codigo_Producto = (SELECT Codigo_Producto FROM detalle_pedido GROUP BY Codigo_Producto, Codigo_Pedido ORDER BY SUM(Cantidad) DESC LIMIT 1);
  • Clientes y sus Representantes de Ventas (Subconsulta Correlacionada)

    Obtiene un listado que incluye el nombre de cada cliente junto con el nombre completo (nombre y apellido) de su representante de ventas.

    SELECT Nombre_Cliente, (SELECT CONCAT(Nombre, ' ', Apellido1) FROM empleado WHERE cliente.Codigo_Empleado_Rep_Ventas = empleado.Codigo_Empleado) AS NombreRepresentanteVentas FROM cliente;
  • Clientes sin Pagos y sus Representantes

    Muestra el nombre de los clientes que no han realizado ningún pago, junto con el nombre de su representante de ventas.

    SELECT Nombre_Cliente, (SELECT Nombre FROM empleado WHERE cliente.Codigo_Empleado_Rep_Ventas = empleado.Codigo_Empleado) AS NombreRepresentante FROM cliente WHERE Codigo_Cliente NOT IN (SELECT Codigo_Cliente FROM pago WHERE Total > 0);

Consultas con Joins

Las operaciones de JOIN son fundamentales para combinar filas de dos o más tablas basándose en una columna relacionada entre ellas.

  • Direcciones de Oficinas con Clientes en Fuenlabrada

    Proporciona la dirección de las oficinas que tienen empleados que, a su vez, representan a clientes ubicados en Fuenlabrada.

    SELECT DISTINCT o.Linea_Direccion1 FROM oficina o JOIN empleado e ON o.Codigo_Oficina = e.Codigo_Oficina JOIN cliente c ON e.Codigo_Empleado = c.Codigo_Empleado_Rep_Ventas WHERE c.Ciudad = 'Fuenlabrada';
  • Ventas Totales de Productos con Alta Facturación (NATURAL JOIN)

    Lista el nombre, las unidades vendidas, el total facturado y el total facturado con un 18% de IVA para los productos que han generado más de 3000 euros en ventas. Se utiliza NATURAL JOIN para simplificar la sintaxis de unión.

    SELECT p.Nombre, SUM(dp.Cantidad) AS UnidadesVendidas, SUM(dp.Cantidad * dp.Precio_Unidad) AS TotalFacturado, SUM(dp.Cantidad * dp.Precio_Unidad * 1.18) AS TotalFacturadoConIVA FROM producto p NATURAL JOIN detalle_pedido dp NATURAL JOIN pedido pe GROUP BY p.Nombre HAVING SUM(dp.Cantidad * dp.Precio_Unidad) > 3000;
  • Clientes y su Total Pagado (LEFT JOIN)

    Obtiene un listado de todos los clientes y el monto total que cada uno ha pagado. Los clientes que no han realizado pagos también serán incluidos, mostrando un total de cero o nulo.

    SELECT c.Nombre_Cliente, SUM(p.Total) AS TotalPagado FROM cliente c LEFT JOIN pago p ON c.Codigo_Cliente = p.Codigo_Cliente GROUP BY c.Nombre_Cliente;

Entradas relacionadas: