Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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.
6. Lista los nombres y los precios de todos los productos de la tabla producto,
convirtiendo los nombres a mayúscula.
7. Lista los nombres y los precios de todos los productos de la tabla producto,
convirtiendo los nombres a minúscula.
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.
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).
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.
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€.
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.
Lenovo 2
Asus 1
Crucial 1
nombre
Lenovo 2
Crucial 1
Asus 1
Huawei 0
Samsung 0
Gigabyte 0
Hewlett-Packard 0
Xiaomi 0
nombre
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).
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).
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.
15. Lista los apellidos y el nombre de todos los empleados, ordenados de forma
alfabética tendiendo en cuenta en primer lugar sus apellidos y luego su
nombre.
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.
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.
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.
9. Devuelve una lista con el nombre de los empleados que tienen los
departamentos que no tienen un presupuesto entre 100000 y 200000 euros.
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.
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.
1.2.7 Subconsultas
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.
2. Devuelve todos los datos de los dos pedidos de mayor valor.
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.
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.
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.
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.
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.
1. Calcula la cantidad total que suman 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.
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.
11. Devuelve un listado con el identificador de cliente, nombre y apellidos y el
número total de pedidos que ha realizado cada uno de clientes. Tenga en
cuenta que pueden existir clientes que no han realizado ningún pedido.
Estos clientes también deben aparecer en el listado indicando que el
número de pedidos realizados es 0.
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)
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.
1.3.7.2 Subconsultas con ALL y ANY
6. Devuelve el pedido más caro que existe en la tabla pedido si hacer uso
de MAX, ORDER BY ni LIMIT.
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.3 Datos
Acceder al script SQL para la creación de la base de datos y la inserción de
datos: jardineria.sql.
7. Devuelve un listado con los distintos estados por los que puede pasar un
pedido.
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.
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.
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.
3. Devuelve un listado que muestre los clientes que no han realizado ningún
pago y los que no han realizado ningún pedido.
7. Devuelve un listado que muestre los empleados que no tienen una oficina
asociada y los que no tienen un cliente asociado.
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.
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).
5. Devuelve el producto que más unidades tiene en stock.
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.
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.
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.
1.5.3 Datos
Acceder al script SQL para la creación de la base de datos y la inserción de
datos: universidad_a.sql.
2. Averigua el nombre y los dos apellidos de los alumnos que no han dado de
alta su número de teléfono en la base de 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).
1.5.8 Subconsultas
1.6.3 Datos
Acceder al script SQL para la creación de la base de datos y la inserción de
datos: universidad_b.sql.
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.
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