Practica2 SQL
Practica2 SQL
Practica2 SQL
INSERT INTO producto VALUES(1, 'Disco duro SATA3 1TB', 86.99, 5);
INSERT INTO producto VALUES(2, 'Memoria RAM DDR4 8GB', 120, 6);
INSERT INTO producto VALUES(3, 'Disco SSD 1 TB', 150.99, 4);
INSERT INTO producto VALUES(4, 'GeForce GTX 1050Ti', 185, 7);
INSERT INTO producto VALUES(5, 'GeForce GTX 1080 Xtreme', 755, 6);
INSERT INTO producto VALUES(6, 'Monitor 24 LED Full HD', 202, 1);
INSERT INTO producto VALUES(7, 'Monitor 27 LED Full HD', 245.99, 1);
INSERT INTO producto VALUES(8, 'Portátil Yoga 520', 559, 2);
INSERT INTO producto VALUES(9, 'Portátil Ideapd 320', 444, 2);
INSERT INTO producto VALUES(10, 'Impresora HP Deskjet 3720', 59.99, 3);
INSERT INTO producto VALUES(11, 'Impresora HP Laserjet Pro M26nw', 180,
3);
2. Lista los nombres y los precios de todos los productos de la tabla producto.
7. Lista los nombres y los precios de todos los productos de la tabla producto,
convirtiendo los nombres a minúscula.
8. 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.
9. Lista los nombres y los precios de todos los productos de la tabla producto,
redondeando el valor del precio.
10. 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.
11. Lista el código de los fabricantes que tienen productos en la tabla producto.
12. Lista el código de los fabricantes que tienen productos en la tabla producto,
eliminando los códigos que aparecen repetidos.
15. 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.
+*********************************************************
16. Devuelve una lista con las 5 primeras filas de la tabla fabricante.
17. 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.
18. Lista el nombre y el precio del producto más barato. (Utilice solamente las cláusulas
ORDER BY y LIMIT)
19. Lista el nombre y el precio del producto más caro. (Utilice solamente las cláusulas
ORDER BY y LIMIT)
20. Lista el nombre de todos los productos del fabricante cuyo código de fabricante es
igual a 2.
21. Lista el nombre de los productos que tienen un precio menor o igual a 120€.
22. Lista el nombre de los productos que tienen un precio mayor o igual a 400€.
23. Lista el nombre de los productos que no tienen un precio mayor o igual a 400€.
24. Lista todos los productos que tengan un precio entre 80€ y 300€. Sin utilizar el
operador BETWEEN.
25. Lista todos los productos que tengan un precio entre 60€ y 200€. Utilizando el
operador BETWEEN.
26. Lista todos los productos que tengan un precio mayor que 200€ y que el código de
fabricante sea igual a 6.
27. Lista todos los productos donde el código de fabricante sea 1, 3 o 5. Sin utilizar el
operador IN.
28. Lista todos los productos donde el código de fabricante sea 1, 3 o 5. Utilizando el
operador IN.
29. 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.
30. Lista los nombres de los fabricantes cuyo nombre empiece por la letra S.
31. Lista los nombres de los fabricantes cuyo nombre termine por la vocal e.
32. Lista los nombres de los fabricantes cuyo nombre contenga el carácter w.
33. Lista los nombres de los fabricantes cuyo nombre sea de 4 caracteres.
34. Devuelve una lista con el nombre de todos los productos que contienen la cadena
Portátil en el nombre.
35. 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 €.
36. 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).
2. Devuelve una lista con el nombre del producto, precio y nombre de fabricante de
todos los productos de la base de datos. Ordene el resultado por el nombre del
fabricante, por orden alfabético.
3. Devuelve una lista con el código del producto, nombre del producto, código del
fabricante y nombre del fabricante, de todos los productos de la base de datos.
Resuelva todas las consultas utilizando las cláusulas LEFT JOIN y RIGHT JOIN.
1. Devuelve un listado de todos los fabricantes que existen en la base de datos, junto
con los productos que tiene cada uno de ellos. El listado deberá mostrar también
aquellos fabricantes que no tienen productos asociados.
2. Devuelve un listado donde sólo aparezcan aquellos fabricantes que no tienen ningún
producto asociado.
11. Calcula la media del precio de todos los productos del fabricante Asus.
12. Calcula el precio más barato de todos los productos del fabricante Asus.
13. Calcula el precio más caro de todos los productos del fabricante Asus.
15. Muestra el precio máximo, precio mínimo, precio medio y el número total de
productos que tiene el fabricante Crucial.
16. Muestra el número total de productos que tiene cada uno de los fabricantes. El
listado también debe incluir los fabricantes que no tienen ningún producto. El
resultado mostrará dos columnas, una con el nombre del fabricante y otra con el
número de productos que tiene. Ordene el resultado descendentemente por el
número de productos.
17. Muestra el precio máximo, precio mínimo y precio medio de los productos de cada
uno de los fabricantes. El resultado mostrará el nombre del fabricante junto con los
datos que se solicitan.
18. Muestra el precio máximo, precio mínimo, precio medio y el número total de
productos de los fabricantes que tienen un precio medio superior a 200€. No es
necesario mostrar el nombre del fabricante, con el código del fabricante es
suficiente.
19. Muestra el nombre de cada fabricante, junto con el precio máximo, precio mínimo,
precio medio y el número total de productos de los fabricantes que tienen un precio
medio superior a 200€. Es necesario mostrar el nombre del fabricante.
20. Calcula el número de productos que tienen un precio mayor o igual a 180€.
21. Calcula el número de productos que tiene cada fabricante con un precio mayor o
igual a 180€.
22. Lista el precio medio los productos de cada fabricante, mostrando solamente el
código del fabricante.
23. Lista el precio medio los productos de cada fabricante, mostrando solamente el
nombre del fabricante.
24. Lista los nombres de los fabricantes cuyos productos tienen un precio medio mayor
o igual a 150€.
25. Devuelve un listado con los nombres de los fabricantes que tienen 2 o más
productos.
26. Devuelve un listado con los nombres de los fabricantes y el número de productos
que tiene cada uno con un precio superior o igual a 220 €. No es necesario mostrar
el nombre de los fabricantes que no tienen productos que cumplan la condición.
nombre total
Lenovo 2
Asus 1
Crucial 1
27. Devuelve un listado con los nombres de los fabricantes y el número de productos
que tiene cada uno con un precio superior o igual a 220 €. El listado debe mostrar el
nombre de todos los fabricantes, es decir, si hay algún fabricante que no tiene
productos con un precio superior o igual a 220€ deberá aparecer en el listado con un
valor igual a 0 en el número de productos.
nombre total
Lenovo 2
Crucial 1
nombre total
Asus 1
Huawei 0
Samsung 0
Gigabyte 0
Hewlett-Packard 0
Xiaomi 0
Seagate 0
28. Devuelve un listado con los nombres de los fabricantes donde la suma del precio de
todos sus productos es superior a 1000 €.
29. Devuelve un listado con el nombre del producto más caro que tiene cada fabricante.
El resultado debe tener tres columnas: nombre del producto, precio y nombre del
fabricante. El resultado tiene que estar ordenado alfabéticamente de menor a mayor
por el nombre del fabricante.
1. Devuelve todos los productos del fabricante Lenovo. (Sin utilizar INNER JOIN).
2. Devuelve todos los datos de los productos que tienen el mismo precio que el
producto más caro del fabricante Lenovo. (Sin utilizar INNER JOIN).
5. Devuelve todos los productos de la base de datos que tienen un precio mayor o igual
al producto más caro del fabricante Lenovo.
6. Lista todos los productos del fabricante Asus que tienen un precio superior al precio
medio de todos sus productos.
8. Devuelve el producto más caro que existe en la tabla producto sin hacer uso de
MAX, ORDER BY ni LIMIT.
9. Devuelve el producto más barato que existe en la tabla producto sin hacer uso de
MIN, ORDER BY ni LIMIT.
10. Devuelve los nombres de los fabricantes que tienen productos asociados.
(Utilizando ALL o ANY).
11. Devuelve los nombres de los fabricantes que no tienen productos asociados.
(Utilizando ALL o ANY).
12. Devuelve los nombres de los fabricantes que tienen productos asociados.
(Utilizando IN o NOT IN).
13. Devuelve los nombres de los fabricantes que no tienen productos asociados.
(Utilizando IN o NOT IN).
14. Devuelve los nombres de los fabricantes que tienen productos asociados.
(Utilizando EXISTS o NOT EXISTS).
15. Devuelve los nombres de los fabricantes que no tienen productos asociados.
(Utilizando EXISTS o NOT EXISTS).
16. Lista el nombre de cada fabricante con el nombre y el precio de su producto más
caro.
17. Devuelve un listado de todos los productos que tienen un precio mayor o igual a la
media de todos los productos de su mismo fabricante.
18. Lista el nombre del producto más caro del fabricante Lenovo.
7. Devuelve un listado con todos los nombres de los fabricantes que tienen el mismo
número de productos que el fabricante Lenovo.
2. Lista el primer apellido de los empleados eliminando los apellidos que estén
repetidos.
10. Lista el código de los empleados junto al nif, pero el nif deberá aparecer en dos
columnas, una mostrará únicamente los dígitos del nif y la otra la letra.
11. Lista el nombre de cada departamento y el valor del presupuesto actual del que
dispone. Para calcular este dato tendrá que restar al valor del presupuesto inicial
(columna presupuesto) los gastos que se han generado (columna gastos). Tenga
en cuenta que en algunos casos pueden existir valores negativos. Utilice un alias
apropiado para la nueva columna columna que está calculando.
12. Lista el nombre de los departamentos y el valor del presupuesto actual ordenado de
forma ascendente.
16. Devuelve una lista con el nombre y el presupuesto, de los 3 departamentos que
tienen mayor presupuesto.
17. Devuelve una lista con el nombre y el presupuesto, de los 3 departamentos que
tienen menor presupuesto.
18. Devuelve una lista con el nombre y el gasto, de los 2 departamentos que tienen
mayor gasto.
19. Devuelve una lista con el nombre y el gasto, de los 2 departamentos que tienen
menor gasto.
20. Devuelve una lista con 5 filas a partir de la tercera fila de la tabla empleado. La
tercera fila se debe incluir en la respuesta. La respuesta debe incluir todas las
columnas de la tabla empleado.
22. Devuelve una lista con el nombre de los departamentos y el gasto, de aquellos que
tienen menos de 5000 euros de gastos.
23. Devuelve una lista con el nombre de los departamentos y el presupesto, de aquellos
que tienen un presupuesto entre 100000 y 200000 euros. Sin utilizar el operador
BETWEEN.
24. Devuelve una lista con el nombre de los departamentos que no tienen un
presupuesto entre 100000 y 200000 euros. Sin utilizar el operador BETWEEN.
25. Devuelve una lista con el nombre de los departamentos que tienen un presupuesto
entre 100000 y 200000 euros. Utilizando el operador BETWEEN.
26. Devuelve una lista con el nombre de los departamentos que no tienen un
presupuesto entre 100000 y 200000 euros. Utilizando el operador BETWEEN.
27. Devuelve una lista con el nombre de los departamentos, gastos y presupuesto, de
quellos departamentos donde los gastos sean mayores que el presupuesto del que
disponen.
28. Devuelve una lista con el nombre de los departamentos, gastos y presupuesto, de
aquellos departamentos donde los gastos sean menores que el presupuesto del que
disponen.
29. Devuelve una lista con el nombre de los departamentos, gastos y presupuesto, de
aquellos departamentos donde los gastos sean iguales al presupuesto del que
disponen.
30. Lista todos los datos de los empleados cuyo segundo apellido sea NULL.
31. Lista todos los datos de los empleados cuyo segundo apellido no sea NULL.
32. Lista todos los datos de los empleados cuyo segundo apellido sea López.
33. Lista todos los datos de los empleados cuyo segundo apellido sea Díaz o Moreno.
Sin utilizar el operador IN.
34. Lista todos los datos de los empleados cuyo segundo apellido sea Díaz o Moreno.
Utilizando el operador IN.
35. Lista los nombres, apellidos y nif de los empleados que trabajan en el departamento
3.
36. Lista los nombres, apellidos y nif de los empleados que trabajan en los
departamentos 2, 4 o 5.
1. Devuelve un listado con los empleados y los datos de los departamentos donde
trabaja cada uno.
2. Devuelve un listado con los empleados y los datos de los departamentos donde
trabaja cada uno. Ordena el resultado, en primer lugar por el nombre del
departamento (en orden alfabético) y en segundo lugar por los apellidos y el nombre
de los empleados.
5. Devuelve el nombre del departamento donde trabaja el empleado que tiene el nif
38382980M.
6. Devuelve el nombre del departamento donde trabaja el empleado Pepe Ruiz
Santana.
7. Devuelve un listado con los datos de los empleados que trabajan en el departamento
de I+D. Ordena el resultado alfabéticamente.
8. Devuelve un listado con los datos de los empleados que trabajan en el departamento
de Sistemas, Contabilidad o I+D. Ordena el resultado alfabéticamente.
9. Devuelve una lista con el nombre de los empleados que tienen los departamentos
que no tienen un presupuesto entre 100000 y 200000 euros.
10. Devuelve un listado con el nombre de los departamentos donde existe algún
empleado cuyo segundo apellido sea NULL. Tenga en cuenta que no debe mostrar
nombres de departamentos que estén repetidos.
Resuelva todas las consultas utilizando las cláusulas LEFT JOIN y RIGHT JOIN.
1. Devuelve un listado con todos los empleados junto con los datos de los
departamentos donde trabajan. Este listado también debe incluir los empleados que
no tienen ningún departamento asociado.
2. Devuelve un listado donde sólo aparezcan aquellos empleados que no tienen ningún
departamento asociado.
4. Devuelve un listado con todos los empleados junto con los datos de los
departamentos donde trabajan. El listado debe incluir los empleados que no tienen
ningún departamento asociado y los departamentos que no tienen ningún empleado
asociado. Ordene el listado alfabéticamente por el nombre del departamento.
5. Devuelve un listado con los empleados que no tienen ningún departamento asociado
y los departamentos que no tienen ningún empleado asociado. Ordene el listado
alfabéticamente por el nombre del departamento.
11. Calcula el número de empleados que trabajan en cada uno de los departamentos. El
resultado de esta consulta también tiene que incluir aquellos departamentos que no
tienen ningún empleado asociado.
12. Calcula el número de empleados que trabajan en cada unos de los departamentos
que tienen un presupuesto mayor a 200000 euros.
1.2.7 Subconsultas
10. Devuelve los nombres de los departamentos que tienen empleados asociados.
(Utilizando EXISTS o NOT EXISTS).
11. Devuelve los nombres de los departamentos que tienen empleados asociados.
(Utilizando EXISTS o NOT EXISTS).
1. Devuelve un listado con todos los pedidos que se han realizado. Los pedidos deben
estar ordenados por la fecha de realización, mostrando en primer lugar los pedidos
más recientes.
3. Devuelve un listado con los identificadores de los clientes que han realizado algún
pedido. Tenga en cuenta que no debe mostrar identificadores que estén repetidos.
4. Devuelve un listado de todos los pedidos que se realizaron durante el año 2017,
cuya cantidad total sea superior a 500€.
5. Devuelve un listado con el nombre y los apellidos de los comerciales que tienen una
comisión entre 0.05 y 0.11.
8. Devuelve un listado de los nombres de los clientes que empiezan por A y terminan
por n y también los nombres que empiezan por P. El listado deberá estar ordenado
alfabéticamente.
10. Devuelve un listado con los nombres de los comerciales que terminan por el o o.
Tenga en cuenta que se deberán eliminar los nombres repetidos.
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.
Resuelva todas las consultas utilizando las cláusulas LEFT JOIN y RIGHT JOIN.
1. Devuelve un listado con todos los clientes junto con los datos de los pedidos que
han realizado. Este listado también debe incluir los clientes que no han realizado
ningún pedido. El listado debe estar ordenado alfabéticamente por el primer
apellido, segundo apellido y nombre de los clientes.
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.
2. Calcula la cantidad media de todos los pedidos que aparecen en la tabla pedido.
7. Calcula cuál es el valor máximo de categoría para cada una de las ciudades que
aparece en la tabla cliente.
8. Calcula cuál es el máximo valor de los pedidos realizados durante el mismo día para
cada uno de los clientes. Es decir, el mismo cliente puede haber realizado varios
pedidos de diferentes cantidades el mismo día. Se pide que se calcule cuál es el
pedido de máximo valor para cada uno de los días en los que un cliente ha realizado
un pedido. Muestra el identificador del cliente, nombre, apellidos, la fecha y el valor
de la cantidad.
9. Calcula cuál es el máximo valor de los pedidos realizados durante el mismo día para
cada uno de los clientes, teniendo en cuenta que sólo queremos mostrar aquellos
pedidos que superen la cantidad de 2000 €.
10. Calcula el máximo valor de los pedidos realizados para cada uno de los comerciales
durante la fecha 2016-08-17. Muestra el identificador del comercial, nombre,
apellidos y total.
13. Devuelve un listado que muestre el identificador de cliente, nombre, primer apellido
y el valor de la máxima cantidad del pedido realizado por cada uno de los clientes.
El resultado debe mostrar aquellos clientes que no han realizado ningún pedido
indicando que la máxima cantidad de sus pedidos realizados es 0. Puede hacer uso
de la función IFNULL.
14. Devuelve cuál ha sido el pedido de máximo valor que se ha realizado cada año.
15. Devuelve el número total de pedidos que se han realizado cada año.
1.3.7 Subconsultas
1. Devuelve un listado con todos los pedidos que ha realizado Adela Salas Díaz.
(Sin utilizar INNER JOIN).
3. Devuelve los datos del cliente que realizó el pedido más caro en el año 2019. (Sin
utilizar INNER JOIN)
4. Devuelve la fecha y la cantidad del pedido de menor valor realizado por el cliente
Pepe Ruiz Santana.
5. Devuelve un listado con los datos de los clientes y los pedidos, de todos los clientes
que han realizado un pedido durante el año 2017 con un valor mayor o igual al valor
medio de los pedidos realizados durante ese mismo año.
6. Devuelve el pedido más caro que existe en la tabla pedido si hacer uso de MAX,
ORDER BY ni LIMIT.
7. Devuelve un listado de los clientes que no han realizado ningún pedido. (Utilizando
ANY o ALL).
9. Devuelve un listado de los clientes que no han realizado ningún pedido. (Utilizando
IN o NOT IN).
10. Devuelve un listado de los comerciales que no han realizado ningún pedido.
(Utilizando IN o NOT IN).
11. Devuelve un listado de los clientes que no han realizado ningún pedido. (Utilizando
EXISTS o NOT EXISTS).
12. Devuelve un listado de los comerciales que no han realizado ningún pedido.
(Utilizando EXISTS o NOT EXISTS).
1.4 Jardinería
1.4.1 Modelo entidad/relación
1.4.3 Datos
3. Devuelve un listado con el nombre, apellidos y email de los empleados cuyo jefe
tiene un código de jefe igual a 7.
4. Devuelve el nombre del puesto, nombre, apellidos y email del jefe de la empresa.
7. Devuelve un listado con los distintos estados por los que puede pasar un pedido.
10. Devuelve un listado con el código de pedido, código de cliente, fecha esperada y
fecha de entrega de los pedidos cuya fecha de entrega ha sido al menos dos días
antes de la fecha esperada.
11. Devuelve un listado de todos los pedidos que fueron rechazados en 2009.
12. Devuelve un listado de todos los pedidos que han sido entregados en el mes de
enero de cualquier año.
13. Devuelve un listado con todos los pagos que se realizaron en el año 2008 mediante
Paypal. Ordene el resultado de mayor a menor.
14. Devuelve un listado con todas las formas de pago que aparecen en la tabla pago.
Tenga en cuenta que no deben aparecer formas de pago repetidas.
15. Devuelve un listado con todos los productos que pertenecen a la gama
Ornamentales y que tienen más de 100 unidades en stock. El listado deberá estar
ordenado por su precio de venta, mostrando en primer lugar los de mayor precio.
16. Devuelve un listado con todos los clientes que sean de la ciudad de Madrid y cuyo
representante de ventas tenga el código de empleado 11 o 30.
Resuelva todas las consultas utilizando la sintaxis de SQL1 y SQL2. Las consultas con
sintaxis de SQL2 se deben resolver con INNER JOIN y NATURAL JOIN.
2. Muestra el nombre de los clientes que hayan realizado pagos junto con el nombre de
sus representantes de ventas.
3. Muestra el nombre de los clientes que no hayan realizado pagos junto con el
nombre de sus representantes de ventas.
4. Devuelve el nombre de los clientes que han hecho pagos y el nombre de sus
representantes junto con la ciudad de la oficina a la que pertenece el representante.
5. Devuelve el nombre de los clientes que no hayan hecho pagos y el nombre de sus
representantes junto con la ciudad de la oficina a la que pertenece el representante.
8. Devuelve un listado con el nombre de los empleados junto con el nombre de sus
jefes.
11. Devuelve un listado de las diferentes gamas de producto que ha comprado cada
cliente.
1. Devuelve un listado que muestre solamente los clientes que no han realizado ningún
pago.
2. Devuelve un listado que muestre solamente los clientes que no han realizado ningún
pedido.
3. Devuelve un listado que muestre los clientes que no han realizado ningún pago y los
que no han realizado ningún pedido.
4. Devuelve un listado que muestre solamente los empleados que no tienen una oficina
asociada.
5. Devuelve un listado que muestre solamente los empleados que no tienen un cliente
asociado.
6. Devuelve un listado que muestre solamente los empleados que no tienen un cliente
asociado junto con los datos de la oficina donde trabajan.
7. Devuelve un listado que muestre los empleados que no tienen una oficina asociada
y los que no tienen un cliente asociado.
10. 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.
11. Devuelve un listado con los clientes que han realizado algún pedido pero no han
realizado ningún pago.
12. Devuelve un listado con los datos de los empleados que no tienen clientes asociados
y el nombre de su jefe asociado.
5. Calcula el precio de venta del producto más caro y más barato en una misma
consulta.
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.
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.
1.4.8 Subconsultas
2. Devuelve el nombre del producto que tenga el precio de venta más caro.
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.
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.
18. Devuelve un listado que muestre solamente los clientes que 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.
2. Devuelve un listado con los nombres de los clientes y el total pagado por cada uno
de ellos. Tenga en cuenta que pueden existir clientes que no han realizado ningún
pago.
3. Devuelve el nombre de los clientes que hayan hecho pedidos en 2008 ordenados
alfabéticamente de menor a mayor.
1.5.3 Datos
1. Devuelve un listado con los datos de todas las alumnas que se han matriculado
alguna vez en el Grado en Ingeniería Informática (Plan 2015).
3. Devuelve un listado de los profesores junto con el nombre del departamento al que
están vinculados. El listado debe devolver cuatro columnas, primer apellido,
segundo apellido, nombre y nombre del departamento. El resultado estará ordenado
alfabéticamente de menor a mayor por los apellidos y el nombre.
4. Devuelve un listado con el nombre de las asignaturas, año de inicio y año de fin del
curso escolar del alumno con nif 26902806M.
6. Devuelve un listado con todos los alumnos que se han matriculado en alguna
asignatura durante el curso escolar 2018/2019.
Resuelva todas las consultas utilizando las cláusulas LEFT JOIN y RIGHT JOIN.
1. Devuelve un listado con los nombres de todos los profesores y los departamentos
que tienen vinculados. El listado también debe mostrar aquellos profesores que no
tienen ningún departamento asociado. El listado debe devolver cuatro columnas,
nombre del departamento, primer apellido, segundo apellido y nombre del profesor.
El resultado estará ordenado alfabéticamente de menor a mayor por el nombre del
departamento, apellidos y el nombre.
6. Devuelve un listado con todos los departamentos que tienen alguna asignatura que
no se haya impartido en ningún curso escolar. El resultado debe mostrar el nombre
del departamento y el nombre de la asignatura que no se haya impartido nunca.
4. Devuelve un listado con todos los departamentos y el número de profesores que hay
en cada uno de ellos. Tenga en cuenta que pueden existir departamentos que no
tienen profesores asociados. Estos departamentos también tienen que aparecer en el
listado.
7. Devuelve un listado que muestre el nombre de los grados y la suma del número total
de créditos que hay para cada tipo de asignatura. El resultado debe tener tres
columnas: nombre del grado, tipo de asignatura y la suma de los créditos de todas
las asignaturas que hay de ese tipo. Ordene el resultado de mayor a menor por el
número total de crédidos.
1.5.8 Subconsultas
4. Devuelve un listado con los profesores que tienen un departamento asociado y que
no imparten ninguna asignatura.
6. Devuelve un listado con todos los departamentos que no han impartido asignaturas
en ningún curso escolar.
1.6.3 Datos
1.7 Employees
La base de datos Employees está disponible en la página web oficial de MySQL. Se trata
de una base de datos creada por Patrick Crews y Giuseppe Maxia.
1.8 Sakila
La base de datos Sakila está disponible en la página web oficial de MySQL. Se trata de
una base de datos creada por Mike Hillyers.
Esquema.
Datos.
2 SQL Playground
Puedes practicar todas las consultas que aparecen en esta web en SQL Playground:
http://sql-playground.com.
SQL Playground es un recurso educativo diseñado para aprender a realizar consultas SQL.
La versión actual del proyecto utiliza el SGBD MySQL.
El proyecto fue desarrollado para el alumnado de los módulos Gestión de Bases de Datos
y Bases de Datos de los CFGS del IES Celia Viñas (Almería) durante el curso
2017/2018.
3 Referencias
Wikibook SQL Exercises.
Tutorial SQL de w3resource.
Bases de Datos. 2ª Edición. Grupo editorial Garceta. Iván López Montalbán,
Manuel de Castro Vázquez y John Ospino Rivas.
MySQL Sample Databases. Chua Hock-Chuan.
SQL Playground.
4 Licencia
El contenido de esta web está bajo una licencia de Creative Commons Reconocimiento-
NoComercial-CompartirIgual 4.0 Internacional.