Ejercicios SQL
Ejercicios SQL
Ejercicios SQL
1. Enunciado de la Actividad
2. Solución
3. Bibliografía
Enunciados
1. Hacer consultas a una sola tabla de una base de datos
1. Lista los nombres y los precios de todos los productos de la tabla producto.
4. Lista los nombres y los precios de todos los productos de la tabla producto, convirtiendo los
nombres a mayúscula.
5. Lista el nombre de todos los fabricantes en una columna, y en otra columna obtenga en
mayúsculas los dos primeros caracteres del nombre del fabricante.
6. Lista los nombres y los precios de todos los productos de la tabla producto, redondeando el
valor del precio.
7. Lista los nombres y los precios de todos los productos de la tabla producto, truncando el valor
del precio para mostrarlo sin ninguna cifra decimal.
9. Lista el código de los fabricantes que tienen productos en la tabla producto, eliminando los
códigos que aparecen repetidos.
10. Lista los nombres de los productos ordenados en primer lugar por el nombre de forma
ascendente y en segundo lugar por el precio de forma descendente.
11. Devuelve una lista con las 5 primeras filas de la tabla fabricante.
12. Devuelve una lista con 2 filas a partir de la cuarta fila de la tabla fabricante. La cuarta fila
también se debe incluir en la respuesta.
13. Lista el nombre y el precio del producto más barato. (Utilice solamente las cláusulas ORDER BY
y LIMIT)
14. Lista el nombre de todos los productos del fabricante cuyo código de fabricante es igual a 2.
15. Lista el nombre de los productos que tienen un precio mayor o igual a 400€.
16. Lista el nombre de los productos que no tienen un precio mayor o igual a 400€.
17. Lista todos los productos que tengan un precio entre 80€ y 300€. Sin utilizar el operador
BETWEEN.
18. Lista todos los productos que tengan un precio mayor que 200€ y que el código de fabricante
sea igual a 6.
19. Lista todos los productos donde el código de fabricante sea 1, 3 o 5. Sin utilizar el operador IN.
20. Lista el nombre y el precio de los productos en céntimos (Habrá que multiplicar por 100 el
valor del precio). Cree un alias para la columna que contiene el precio que se llame céntimos.
21. Lista los nombres de los fabricantes cuyo nombre empiece por la letra S.
22. Lista los nombres de los fabricantes cuyo nombre sea de 4 caracteres.
23. Devuelve una lista con el nombre de todos los productos que contienen la cadena Portátil en
el nombre.
24. Devuelve una lista con el nombre de todos los productos que contienen la cadena Monitor en
el nombre y tienen un precio inferior a 215 €.
25. Lista el nombre y el precio de todos los productos que tengan un precio mayor o igual a 180€.
Ordene el resultado en primer lugar por el precio (en orden descendente) y en segundo lugar
por el nombre (en orden ascendente).
Solución
1. select count(*) as "Num empleado"
from empleado;
2. Devuelve un listado que muestre todos los pedidos que ha realizado cada cliente. El
resultado debe mostrar todos los datos de los pedidos y del cliente. El listado debe
mostrar los datos de los clientes ordenados alfabéticamente.
3. Devuelve un listado que muestre todos los pedidos en los que ha participado un comercial.
El resultado debe mostrar todos los datos de los pedidos y de los comerciales. El listado
debe mostrar los datos de los comerciales ordenados alfabéticamente.
4. Devuelve un listado que muestre todos los clientes, con todos los pedidos que han
realizado y con los datos de los comerciales asociados a cada pedido.
5. Devuelve un listado de todos los clientes que realizaron un pedido durante el año 2017,
cuya cantidad esté entre 300 € y 1000 €.
6. Devuelve el nombre y los apellidos de todos los comerciales que ha participado en algún
pedido realizado por María Santana Moreno.
7. Devuelve el nombre de todos los clientes que han realizado algún pedido con el comercial
Daniel Sáez Vega.
2. Devuelve un listado con todos los comerciales junto con los datos de los pedidos que han
realizado. Este listado también debe incluir los comerciales que no han realizado ningún
pedido. El listado debe estar ordenado alfabéticamente por el primer apellido, segundo
apellido y nombre de los comerciales.
3. Devuelve un listado que solamente muestre los clientes que no han realizado ningún
pedido.
4. Devuelve un listado que solamente muestre los comerciales que no han realizado ningún
pedido.
5. Devuelve un listado con los clientes que no han realizado ningún pedido y de los
comerciales que no han participado en ningún pedido. Ordene el listado alfabéticamente
por los apellidos y el nombre. En en listado deberá diferenciar de algún modo los clientes y
los comerciales.
6. ¿Se podrían realizar las consultas anteriores con NATURAL LEFT JOIN o NATURAL RIGHT
JOIN? Justifique su respuesta
4. ¿Cuántos pedidos hay en cada estado? Ordena el resultado de forma descendente por el
número de pedidos.
5. Calcula el precio de venta del producto más caro y más barato en una misma consulta.
6. Calcula el número de clientes que tiene la empresa.
8. ¿Calcula cuántos clientes tiene cada una de las ciudades que empiezan por M?
11. Calcula la fecha del primer y último pago realizado por cada uno de los clientes. El listado
deberá mostrar el nombre y los apellidos de cada cliente.
12. Calcula el número de productos diferentes que hay en cada uno de los pedidos.
13. Calcula la suma de la cantidad total de todos los productos que aparecen en cada uno de
los pedidos.
14. Devuelve un listado de los 20 productos más vendidos y el número total de unidades que
se han vendido de cada uno. El listado deberá estar ordenado por el número total de
unidades vendidas.
15. La facturación que ha tenido la empresa en toda la historia, indicando la base imponible, el
IVA y el total facturado. La base imponible se calcula sumando el coste del producto por el
número de unidades vendidas de la tabla detalle_pedido. El IVA es el 21 % de la base
imponible, y el total la suma de los dos campos anteriores.
16. La misma información que en la pregunta anterior, pero agrupada por código de producto.
17. La misma información que en la pregunta anterior, pero agrupada por código de producto
filtrada por los códigos que empiecen por OR.
18. Lista las ventas totales de los productos que hayan facturado más de 3000 euros. Se
mostrará el nombre, unidades vendidas, total facturado y total facturado con impuestos
(21% IVA).
19. Muestre la suma total de todos los pagos que se realizaron para cada uno de los años que
aparecen en la tabla pagos.
3. Devuelve el nombre del producto del que se han vendido más unidades. (Tenga en cuenta
que tendrá que calcular cuál es el número total de unidades que se han vendido de cada
producto a partir de los datos de la tabla detalle_pedido)
4. Los clientes cuyo límite de crédito sea mayor que los pagos que haya realizado. (Sin utilizar
INNER JOIN).
7. Devuelve el nombre, los apellidos y el email de los empleados que están a cargo de
Alberto Soria.
9. Devuelve el nombre del producto que tenga el precio de venta más caro.
11. Devuelve el nombre, apellido1 y cargo de los empleados que no representen a ningún
cliente.
12. Devuelve un listado que muestre solamente los clientes que no han realizado ningún pago.
13. Devuelve un listado que muestre solamente los clientes que sí han realizado algún pago.
14. Devuelve un listado de los productos que nunca han aparecido en un pedido.
15. Devuelve el nombre, apellidos, puesto y teléfono de la oficina de aquellos empleados que
no sean representante de ventas de ningún cliente.
16. Devuelve las oficinas donde no trabajan ninguno de los empleados que hayan sido los
representantes de ventas de algún cliente que haya realizado la compra de algún producto
de la gama Frutales.
17. Devuelve un listado con los clientes que han realizado algún pedido pero no han realizado
ningún pago.
19. Devuelve un listado que muestre solamente los clientes que sí han realizado algún pago.
20. Devuelve un listado de los productos que nunca han aparecido en un pedido.
21. Devuelve un listado de los productos que han aparecido en un pedido alguna vez.
1. Bibliografía