Ejercicios-Realización de Consultas

September 2, 2022 | Author: Anonymous | Category: N/A
Share Embed Donate


Short Description

Download Ejercicios-Realización de Consultas...

Description

 

Ej Ejer ercic cicio ios. s. Re Reali aliza zaci ción ón de con onsul sulttas SQL JOSÉ JO SÉ JU JUAN AN SÁ SÁNCH NCHEZ EZ HE HERN RNÁND ÁNDEZ EZ

IES Celi Celiaa Viñ Viñas as (Al (Almer mería) ía) - 20 2019/ 19/20 2020 20

 

Índ Índic icee ge gener neral al 1 Ejercicios. Realización de consultas SQL 1.1 Tienda de informática . . . . . . . . . . . . . . . . . . . . . . 1.1.1 Modelo entidad/relación . . . . . . . . . . . . . . . . 1.1.2 Base de datos para MySQL . . . . . . . . . . . . . . . . 1.1.3 Consultas sobre una tabla . . . . . . . . . . . . . . . . 1. 1.1. 1.44 Cons Consul ulttas mult multit itab abla la (C (Com ompo posi sici ción ón inte intern rna) a) . . . . . . 1. 1.1. 1.55 Cons Consul ulttas mult multit itab abla la (C (Com ompo posi sici ción ón exte extern rna) a) . . . . . . 1.1.6 Consultas resumen . . . . . . . . . . . . . . . . . . . 1.1.7 Subconsult Subconsultas as (En la cláusu cláusula la WHERE WHERE)) . . . . . . . . . . 1. 1.1. 1.7. 7.11 Co Con n op oper erad ador ores es bás ásic icos os de comp compar arac ació ión n . . 1.1.7. 1.1 .7.22 Subcon Subconsul sulta tass con ALL y ANY ANY   . . . . . . . . . 1.1.7. 1.1 .7.33 Subcon Subconsul sulta tass con IN y NO NOT T IN   . . . . . . . 1.1.7. 1.1 .7.44 Subcon Subconsul sulta tass con EXISTS y NOT EXISTS EXISTS   . 1.1.7.5 Subc ubconsultas correl ela aci cio onadas . . . . . . . . 1.1.8 Subconsult Subconsultas as (En la cláusu cláusula la HAVING HAVING)) . . . . . . . . . 1.2 Gestión de empleados . . . . . . . . . . . . . . . . . . . . . . 1.2.1 Modelo entidad/relación . . . . . . . . . . . . . . . . 1.2.2 Base de datos para MySQL . . . . . . . . . . . . . . . . 1.2.3 Consultas sobre una tabla . . . . . . . . . . . . . . . . 1. 1.2. 2.44 Cons Consul ulttas mult multit itab abla la (C (Com ompo posi sici ción ón inte intern rna) a) . . . . . . 1. 1.2. 2.55 Cons Consul ulttas mult multit itab abla la (C (Com ompo posi sici ción ón exte extern rna) a) . . . . . . 1.2.6 Consultas resumen . . . . . . . . . . . . . . . . . . . 1.2.7 Subconsultas . . . . . . . . . . . . . . . . . . . . . . . 1. 1.2. 2.7. 7.11 Co Con n op oper erad ador ores es bás ásic icos os de comp compar arac ació ión n . . 1.2.7. 1.2 .7.22 Subcon Subconsul sulta tass con ALL y ANY ANY   . . . . . . . . . 1.2.7. 1.2 .7.33 Subcon Subconsul sulta tass con IN y NO NOT T IN   . . . . . . . 1.2.7. 1.2 .7.44 Subcon Subconsul sulta tass con EXISTS y NOT EXISTS EXISTS   . 1.3 Gestión de ventas . . . . . . . . . . . . . . . . . . . . . . . . . 1.3.1 Modelo entidad/relación . . . . . . . . . . . . . . . . 1.3.2 Base de datos para MySQL . . . . . . . . . . . . . . . . 1.3.3 Consultas sobre una tabla . . . . . . . . . . . . . . . . 1. 1.3. 3.44 Cons Consul ulttas mult multit itab abla la (C (Com ompo posi sici ción ón inte intern rna) a) . . . . . . 1. 1.3. 3.55 Cons Consul ulttas mult multit itab abla la (C (Com ompo posi sici ción ón exte extern rna) a) . . . . . . 1.3.6 Consultas resumen . . . . . . . . . . . . . . . . . . .

1

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4   4   4   4   5   7   7   8   10   10   10   10   10   11   11   11   11   11   12   14   15   15   16   16   16   16   16   16   17   17   18   19   19   20

 

Ejercicios. Realización de consultas S QL QL

IES Celia Viñas (Almería) - 2019/2020

Subconsultas . . . . . . . . . . . . . . . . . . . . . . . 1. 1.3. 3.7. 7.11 Co Con n op oper erad ador ores es bás ásic icos os de comp compar arac ació ión n . . 1.3.7. 1.3 .7.22 Subcon Subconsul sulta tass con ALL y ANY ANY   . . . . . . . . . 1.3.7. 1.3 .7.33 Subcon Subconsul sulta tass con IN y NO NOT T IN   . . . . . . . 1.3.7. 1.3 .7.44 Subcon Subconsul sulta tass con EXISTS y NOT EXISTS EXISTS   . Jardinería . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4.1 Modelo entidad/relación . . . . . . . . . . . . . . . . 1.4.2 Base de datos para MySQL . . . . . . . . . . . . . . . . 1.4.3 Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4.4 Consultas sobre una tabla . . . . . . . . . . . . . . . . 1. 1.4. 4.55 Cons Consul ulttas mult multit itab abla la (C (Com ompo posi sici ción ón inte intern rna) a) . . . . . . 1. 1.4. 4.66 Cons Consul ulttas mult multit itab abla la (C (Com ompo posi sici ción ón exte extern rna) a) . . . . . . 1.4.7 Consultas resumen . . . . . . . . . . . . . . . . . . . 1.4.8 Subconsultas . . . . . . . . . . . . . . . . . . . . . . . 1. 1.4. 4.8. 8.11 Co Con n op oper erad ador ores es bás ásic icos os de comp compar arac ació ión n . . 1.4.8.2 Subc ubconsultas con ALL y ANY . . . . . . . . . 1.4.8.3 Subc ubconsultas con IN y NOT IN . . . . . . . . 1.4 .4..8. 8.44 Su Sub bconsu onsult ltas as con EX EXIISTS y NOT NOT EX EXIS IST TS . . . 1.4.8.5 Subc ubconsultas correl ela aci cio onadas . . . . . . . . 1.4.9 Consultas variadas . . . . . . . . . . . . . . . . . . . . Universidad (Tipo A) . . . . . . . . . . . . . . . . . . . . . . . 1.5.1 Modelo entidad/relación . . . . . . . . . . . . . . . . 1.5.2 Base de datos para MySQL . . . . . . . . . . . . . . . . 1.5.3 Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.5.4 Consultas sobre una tabla . . . . . . . . . . . . . . . . 1. 1.5. 5.55 Cons Consul ulttas mult multit itab abla la (C (Com ompo posi sici ción ón inte intern rna) a) . . . . . . 1. 1.5. 5.66 Cons Consul ulttas mult multit itab abla la (C (Com ompo posi sici ción ón exte extern rna) a) . . . . . . 1.5.7 Consultas resumen . . . . . . . . . . . . . . . . . . . 1.5.8 Subconsultas . . . . . . . . . . . . . . . . . . . . . . . Universidad (Tipo B) . . . . . . . . . . . . . . . . . . . . . . . 1.6.1 Modelo entidad/relación . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

                                                             

21 21 21 21 21 22 22 22 25 25 26 26 27 28 28 28 28 29 29 29 29 30 30 32 32 32 32 33 34 34 34

11..66..23 D Baastoesde. d. a.to.s .pa. ra. M . y. S.QL. .. Employees . . . . . . . . . . . . . 1.7.1 Modelo entidad/relación . 1.7.2 Base de datos para MySQL . Sakila . . . . . . . . . . . . . . . . 1.8.1 Modelo entidad/relación . 1.8.2 Base de datos para MySQL . Sakila (En Español) . . . . . . . . . 1.9.1 Modelo entidad/relación . 1.9.2 Base de datos para MySQL .

.. . . . . . . . . .

.. . . . . . . . . .

.. . . . . . . . . .

.. . . . . . . . . .

.. . . . . . . . . .

.. . . . . . . . . .

.. . . . . . . . . .

.. . . . . . . . . .

.. . . . . . . . . .

.. . . . . . . . . .

.. . . . . . . . . .

.. . . . . . . . . .

.. . . . . . . . . .

.. . . . . . . . . .

.. . . . . . . . . .

.. . . . . . . . . .

.. . . . . . . . . .

.. . . . . . . . . .

                    

34 36 36 37 37 37 38 38 38 39 39

1.3.7

1.4

1.5

1.6

1.7

1.8

1.9

2 SQL Playground

José Juan Sánchez Hernández

.. . . . . . . . . .

.. . . . . . . . . .

.. . . . . . . . . .

.. . . . . . . . . .

.. . . . . . . . . .

.. . . . . . . . . .

.. . . . . . . . . .

.. . . . . . . . . .

.. . . . . . . . . .

.. . . . . . . . . .

.. . . . . . . . . .

.. . . . . . . . . .

.. . . . . . . . . .

.. . . . . . . . . .

.. . . . . . . . . .

40

2

 

Ejercicios. Realización de consultas S QL QL

IES Celia Viñas (Almería) - 2019/2020

3 Referencias

41

4 Licencia

42

José Juan Sánchez Hernández

3

 

Ca Capí pítu tulo lo 1

Ejer Ej erci cici cios os.. Re Real aliz izac ació ión n de con onsu sult ltas as SQ SQLL 1.11 Ti 1. Tien enda da de in info form rmááti tica ca 1.1. 1. 1.11 Mod Modelo elo ent entida idad/r d/rela elació ción n

1.1. 1. 1.22 Ba Base se de da dattos pa parra My MySQ SQLL DATABASE IF   EXISTS   tienda; tienda; DROP   DATABASE CREATE   DATABASE DATABASE tiend tienda a   CHARACTER CHARACTER SET   utf8mb4; utf8mb4;

USE tie tienda nda; ; CREATE E TABLE   fabricante   ( CREAT

codigo   INT   UNSIGNED AUTO_INCREMENT   PRIMARY PRIMARY KEY, nombre   VARCHAR(100)   NOT NUL NULL L ); CREATE E TABLE   producto   ( CREAT

codigo   INT   UNSIGNED AUTO_INCREMENT   PRIMARY PRIMARY KEY,

4

 

Ejercicios. Realización de consultas S QL QL

IES Celia Viñas (Almería) - 2019/2020

nombre   VARCHAR(100)   NOT NUL NULL L, preci precio o DOUBL DOUBLE E   NOT NUL NULL L, NULL L, codigo_fabricante   INT   UNSIGNED   NOT NUL FOREI FOREIGN GN KEY   (codigo_fabricante) codigo_fabricante)   REFER REFERENCES ENCES fabricante fabricante( (codigo) codigo) ); INSERT T INTO   fabricante   VALUES(1,   'Asus'); INSER 'Asus'); 'Lenovo'); INSERT INTO   fabricante   VALUES(2,   'Lenovo'); INSERT INSERT 'Hewlett-Packard'); INSERT INTO   fabricante   VALUES(3,   'Hewlett-Packard'); INSERT INTO   fabricante   VALUES(4,   'Samsung'); INSERT 'Samsung');

'Seagate'); INSER INSERT T INTO   fabricante   VALUES(5,   'Seagate'); INSER INSERT T INTO   fabricante   VALUES(6,   'Crucial'); 'Crucial'); INSER INSERT T INTO   fabricante   VALUES(7,   'Gigabyte'); 'Gigabyte'); INSERT 'Huawei'); INSERT INTO   fabricante   VALUES(8,   'Huawei'); INSERT 'Xiaomi'); INSERT INTO   fabricante   VALUES(9,   'Xiaomi'); INSERT INTO   producto   VALUES(1,   'Disco INSERT 'Disco dur duro o SAT SATA3 A3 1TB 1TB' ', 86.9 86.99, 9, 5); 5); INSER INSERT T INTO   producto   VALUES(2,   'Memor 'Memoria ia RAM DDR DDR4 4 8GB 8GB' ', 120, 120, 6); 6);

'Disco co SS SSD D 1 TB TB' ', 150. 150.99 99, , 4); 4); INSERT T INTO   producto   VALUES(3,   'Dis INSER INSERT INTO   producto   VALUES(4,   'GeForce INSERT 'GeForce GTX 1050T 1050Ti' i', , 185, 185, 7); 7); INSERT INSERT INTO   producto   VALUES(5,   'GeForc 'GeForce e GTX 108 1080 0 Xtr Xtreme eme' ', 755, 755, 6); 6); INSERT INTO   producto   VALUES(6,   'Moni INSERT 'Monito tor r 24 LE LED D Fu Full ll HD HD' ', 202, 202, 1); 1); INSERT INTO   producto   VALUES(7,   'Moni INSERT 'Monito tor r 27 LE LED D Fu Full ll HD HD' ', 245. 245.99 99, , 1); 1); INSERT 'Portátil Yoga 520' 520', , 559, 559, 2); 2); INSERT INTO   producto   VALUES(8,   'Portátil INSERT INTO   producto   VALUES(9,   'Portátil INSERT 'Portátil Ideap Ideapd d 320' 320', , 444, 444, 2); 2); INSERT T INTO   producto   VALUES(10,   'Impres 'Impresora ora HP Des Deskje kjet t 372 3720' 0', , 59.9 59.99, 9, 3); 3); INSER

'Impresora ora HP Las Laserj erjet et Pro M26 M26nw' nw', , 180, 180, 3); 3); INSER INSERT T INTO   producto   VALUES(11,   'Impres

1.1. 1.33 Co Cons nsul ulta tass so sobr bree un unaa ta tabl blaa 1. 1. Lista el nombre de todos los productos que hay en la tabla producto. 2. Lista los nombres nombres y los precios de todos los productos de la ttabla abla producto. 3. Lista todas las columnas de la tabla producto. 4. Lista el nombre de los productos, productos, el precio en euros y el precio en dólares estadounidenses (USD). 5. Li List sta a el nomb nombre re de lo loss pr prod oduc ucto tos, s, el pr preci ecio o en eu euro ross y el preci precio o en dó dóla lare ress esta estado doun unid idens enses es (U (USD) SD).. Util Utiliz iza a los siguientes alias para las columnas: nombre produc ducto to, euros, dólares. nombre de pro 6. Li List sta a lo loss nomb nombre ress y lo loss pr preci ecios os de to todo doss lo loss prod produc ucto toss de la tabl tabla a producto, convir convirtie tiendo ndo los nom nombre bress a mayúscula. convirtie tiendo ndo los nom nombre bress a 7. Li List sta a lo loss nomb nombre ress y lo loss pr preci ecios os de to todo doss lo loss prod produc ucto toss de la tabl tabla a producto, convir minúscula. 8. Lista el nombre de todos los fabricantes fabricantes en una columna, y en otra columna obtenga obtenga en mayúsculas los dos primeros caracteres del nombre del fabricante.

José Juan Sánchez Hernández

5

 

Ejercicios. Realización de consultas S QL QL

IES Celia Viñas (Almería) - 2019/2020

9. Lista los nombres y los precios de todos los product productos os de la tabla producto, redondeando el valor del precio. trunca ncando ndo el valor valor del precio precio 10. Lista Lista los nombre nombress y losprecios losprecios de to todoslos doslos produc producto toss de la tabla tabla producto, tru para mostrarlo sin ninguna cifra decimal. 11. Lista el código código de los fabricantes que tienen productos en la tabla tabla producto. 12. Lista Lista el códig código o de los fabric fabricant antes es que tienen tienen produc productosen tosen la tabla tabla producto, eli elimin minand ando o los cód código igoss que aparecen repetidos. 13. Lista los nombres de los fabricantes fabricantes ordenados de forma forma ascendente. 14. Lista los nombres de los fabricantes fabricantes ordenados de forma forma descendente. 15. Lista los nombres de los productos ordenados en primer lugar por el nombre de forma ascendente ascendente y en segundo lugar por el precio de forma descendente. 16. Devuelve una lista con las 5 primeras fi filas las de la tabla fabricante. 17. Devuelve una lista con 2 filas a partir de la cuart cuarta a fila de la tabla fabricante. La cuarta fila también se debe incluir en la respuesta. ORDER ER BY y LIMIT) 18. 18. Li List sta a el nomb nombre re y el pr preci ecio o del pr prod oduc ucto to más más ba bara rato to.. (Uti (Utili lice ce sola solame ment ntee las las cláu cláusu sula lass ORD

19. Lista el nombre y el precio del producto más más caro. (Utilice solamente las cláusulas ORDER ORDER BY y LIMIT) 20. Lista el nombre de todos todos los productos del fabricante fabricante cuyo código de fabricante es igual a 2. 21. Lista el nombre de los productos productos que tienen un precio menor o igual a 120€. 22. Lista el nombre de los productos productos que tienen un precio mayor o igual a 400€. 23. Lista el nombre de los productos que no tienen tienen un precio mayor o igual a 400€. 24. Lista todos todos los productos que tengan un precio entre 80€ y 300€. Sin utilizar el operador BETWEEN. 25. Lista todos todos los productos que tengan un precio entre 60€ y 200€. Utilizando el operador BETWEEN. 26. Lista todos todos los productos que tengan un precio mayor que 200€ y que el código de ffabricante abricante sea igual a 6. 27. Lista todos todos los productos donde el código de fabricante fabricante sea 1, 3 o 5. Sin utiliz utilizar ar el operador IN. 28. Lista todos todos los productos donde el código de fabricante fabricante sea 1, 3 o 5. Utili Utilizando zando el operador IN. 29. Listaelnombreyelpreciodelosproductosencéntimos(Habráquemultiplicarpor100elvalordelprecio). Cree un alias para la columna que contiene el e l precio que se llame céntimos. 30. Lista los nombres nombres de los fabricantes cuyo nombre empiece por la letra S. 31. Lista los nombres de los fabricantes fabricantes cuyo nombre termine termine por la vocal e. 32. Lista los nombres nombres de los fabricantes cuyo nombre contenga el car carácter ácter w. 33. Lista los nombres nombres de los fabricantes cuyo nombre sea de 4 carac caracteres. teres. Portá átil en el nom34. Devuelve una lista con el nombre de todos los productos productos que contienen la cadena Port bre.

José Juan Sánchez Hernández

6

 

Ejercicios. Realización de consultas S QL QL

IES Celia Viñas (Almería) - 2019/2020

35. 35. Dev Devue uelv lvee una una li list sta a co con n el no nomb mbre re de to todo doss lo loss pr prod oduc ucto toss qu quee cont contie iene nen n la caden cadena a Monitor en el nomb nombre re 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).

1.1.4 1.4 Con Consul sulta tass mul multit titabl ablaa (Co (Compo mposic sición ión int intern erna) a) 1. Resuelva todas las consultas utilizando la sintaxis de SQL1 y SQL2. 1. Devue Devuelv lvee una una li list sta a co con n el nomb nombre re de dell pr prod oduc ucto to,, pr prec ecio io y nomb nombre re de fa fabr bric icant antee de todo todoss los los prod produc ucto toss de la base de datos. 2. Devue Devuelv lvee una una li list sta a co con n el nomb nombre re de dell pr prod oduc ucto to,, pr prec ecio io y nomb nombre re de fa fabr bric icant antee de todo todoss los los prod produc ucto toss 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 product producto, o, código del fabricante y nombre del fabricante, de todos los productos de la base de datos. 4. Devuelve el nombre del producto, su precio y el nombre de su fabricante, del producto más barato. barato. 5. Devuelve el nombre del producto, su precio y el nombre de su fabricante, del producto más caro. caro. 6. Devuelve una lista de todos todos los productos del fabricante Lenovo. 7. Devuelv Devuelvee una lis lista ta de todos todos los produc producto toss del fabric fabricant antee Crucial qu quee teng tengan an un preci precio o ma mayo yorr qu quee 200€ 200€.. 8. Devuelve un listado con todos todos los productos de los fabricantes Asus, Hewlett Hewlett-Packardy Seagate. Sin utilizar el operador IN. 9. Devuelv Devuelvee un lista listado do con con to todos dos los produc producto toss de los fabric fabricant antes es Asus, Hewlett Hewlett-Packardy Seagate. Ut Utiilizando el operador IN. 10. Devuelve un listado listado con el nombre nombre y el precio de todos todos los productos productos de los fabric fabricantes antes cuyo nombre nombre termine por la vocal e. 11. Devuelveunlistadoconelnombreyelpreciodetodoslosproductoscuyonombredefabricantecontenga el carácter w en su nombre. 12. Devuelve un listado con el nombre de producto, precio y nombre de fabricante, de todos los product productos os 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) 13. Devuelv Devuelvee un lista listado do con con el códig código o y el nombrede nombrede fabric fabricant ante, e, sol solame amentede ntede aquello aquelloss fabric fabricant antes es quetienen productos asociados en la base de datos.

1.1.5 1.5 Con Consul sulta tass mul multit titabl ablaa (Co (Compo mposic sición ión ex exte terna rna)) 1. Resuelva todas las consultas utilizando las cláusulas LEFT LEFT JOI JOIN N y RIGHT RIGHT JOI JOIN N.

José Juan Sánchez Hernández

7

 

Ejercicios. Realización de consultas S QL QL

IES Celia Viñas (Almería) - 2019/2020

1. Devuelveunlistadode todoslosfabricantes que queexi exist sten en en la base base de datos,juntocon datos,juntocon los produc producto toss que tiene tiene cada cada uno de ellos. ellos. El lis lista tado do deberá deberá mostr mostrar ar ta tambi mbién én aquello aquelloss fabri fabrican cantes tes que no tienen tienen produc producto toss asociados. 2. Devuelv Devuelvee un lista listado do donde donde sól sólo o aparez aparezcan can aquello aquelloss fabric fabricant antes es que no tienen tienen ningún ningún produc producto to aso asocia ciado. do. 3. ¿Pueden existir productos que que no estén relacionados con un fabricante? Jus Justifique tifique su respuesta.

1.1.6 Con 1.1.6 Consul sulta tass res resume umen n 1. Calcula el número total total de productos que hay en la tabla productos. 2. Calcula el número total total de fabricantes que hay en la tabla fabricante. 3. Calcula el número de valores distintos de códig código o de fabricante aparecen en la tab tabla la productos. 4. Calcula la media del precio de tod todos os los productos. productos. 5. Calcula el precio más barato barato de todos todos los productos. 6. Calcula el precio más caro de todos todos los productos. productos. 7. Lista el nombre y el precio del producto producto más barato. barato. 8. Lista el nombre y el precio del producto producto más caro. 9. Calcula la suma de los precios de todos los productos. productos. 10. Calcula el número de productos que tiene el fabricante fabricante Asus. 11. Calcula la media del precio de todos todos los productos del fabricante Asus. 12. Calcula el precio más barato de todos todos los productos del fabricant fabricantee Asus. 13. Calcula el precio más caro de todos todos los productos del fabricante Asus. 14. Calcula la suma de todos los productos del fabricante fabricante Asus. 15. Muestra el precio máximo, precio mínimo, mínimo, precio medio y el número total de product productos os que tiene el fabricante Crucial. 16. Muestra Muestra el número total total de productos productos que tiene cada uno de los fabricantes. fabricantes. El listado 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. Muest Muestra ra el precio precio máx máximo imo,, precio precio mínimoy mínimoy precio precio medio medio de los produc producto toss de cad cada a uno de los fabric fabricant antes. es. El resultado mostrará el nombre del fabricante junto con los datos que se solicitan. 18. M Mues uestr tra a el precio precio máx máximo imo,, precio precio mínimo mínimo,, precio precio medio medio y el número número tota totall de pro produc ductosde tosde los fabric fabricant antes es 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 Muestra el nombr nombree de cada fabricant fabricante, e, junto con el precio precio máximo, precio mínimo, 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.

José Juan Sánchez Hernández

8

 

Ejercicios. Realización de consultas S QL QL

IES Celia Viñas (Almería) - 2019/2020

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€. 180€. 22. Lista el precio medio los productos productos de cada fabricante, mos mostrando trando solamente el código del ffabricante. abricante. 23. Lista el precio medio los productos productos de cada fabricante, mos mostrando trando solamente el nombre del fabricante. 24. Lista los nombres nombres de los fabricantes cuyos productos tienen un precio medio mayor o igual a 150€. 25. Devuelve un listado con los nombres de los fabricant fabricantes es que tienen 2 o más productos. 26. 26. Dev Devue uelv lvee un li list stad ado o co con n lo loss no nomb mbre ress de lo loss fa fabr bric ican ante tess y el nú núme mero ro de prod produc ucto toss qu quee ti tiene ene cada cada uno uno co con n 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. Ejemplo del resultado esperado: nomb nombre re

to tota tall

Lenovo

2

Asus

1

Crucial

1

27. 27. Dev Devue uelv lvee un li list stad ado o co con n lo loss no nomb mbre ress de lo loss fa fabr bric ican ante tess y el nú núme mero ro de prod produc ucto toss qu quee ti tiene ene cada cada uno uno co con n 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. Ejemplo del resultado esperado: nombre

total

Lenovo

2

Crucial Asus

1 1

Huawei

0

Samsung

0

Gigabyte

0

Hewlet Hewl ettt-P Packard ackard

0

Xiaomi

0

Seagate

0

28. 28. Dev Devue uelv lvee un li list stad ado o co con n lo loss nomb nombre ress de lo loss fa fabr bric icant antes es do dond ndee la suma suma de dell prec precio io de todo todoss sus sus prod produc ucto toss es superior a 1000 €.

José Juan Sánchez Hernández

9

 

Ejercicios. Realización de consultas S QL QL

IES Celia Viñas (Almería) - 2019/2020

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. 1.1. 1.77 Su Subc bcon onsu sult ltas as (E (En n la cl cláu áusu sula la WHERE) 1.1. 1. 1.77.1 Con oper operado adores res bás básic icos os de com compar paraci ación ón 1. Devuelve todos los productos productos del fabricante Lenovo. (Sin utilizar INNER INNER JOI JOIN N). 2. Devuelve todos los datos de los productos productos que tienen el mismo precio que el product producto o más caro del faINNER ER JOI JOIN N). bricante Lenovo. (Sin utilizar INN 3. Lista el nombre del producto más más caro del fabricante fabricante Lenovo. 4. Lista el nombre del producto producto más barato barato del fabricante Hewlett Hewlett-Packard. 5. Devuelve todos los productos de la base de datos q que ue tienen un precio mayor o igual al producto más caro del fabricante Lenovo. 6. Lista Lista todos todos los produc producto toss del fabric fabricant antee Asus qu quee ti tien enen en un preci precio o supe superi rior or al prec precio io medi medio o de todo todoss sus sus productos.

1.1.77.2 Subco Subconsult nsultas as con ALL y ANY 1.1. 8. Devue Devuelv lvee el prod produc uctomás tomás ca caro ro qu quee ex exis isteen teen la tabl tabla a producto sinhacerusode MAX, ORDER ORDER BY ni LIMIT. 9. Devuelve el producto producto más barat barato o que existe en la tabla producto  sin hacer uso de  MIN,   O ORDE RDER R BY ni LIMIT. 10. Devuelve los nombres de los fabricantes fabricantes que tienen productos asociados. (Utilizando ALL o ANY). 11. Devuelve los nombres de los fabricantes fabricantes que no tienen producto productoss asociados. (Utiliz (Utilizando ando ALL o ANY).

1.1.77.3 Subco Subconsult nsultas as con IN y NO NOT T 1.1.

IN

12. Devuelve los nombres de los fabricantes fabricantes que tienen productos asociados. (Utilizando IN o NO NOT T IN). 13. Devuelve los nombres de los fabricantes fabricantes que no tienen producto productoss asociados. (Utiliz (Utilizando ando IN o NO NOT T IN).

1.1.77.4 Subc Subconsul onsultas tas con EXISTS y NOT 1.1.

EXISTS EXIS TS

14. Devuelve los nombres nombres de los fabricantes fabricantes que tienen productos productos asociados. (Utilizand (Utilizando o  EXISTS  o  NOT EXISTS). 15. Devuelv Devuelvee los nombre nombress de los fabri fabrican cantes tes que no tienen tienen produc productos tos aso asocia ciados dos.. (Utili (Utilizan zando do EXISTS o NOT EXISTS).

José Juan Sánchez Hernández

10

 

Ejercicios. Realización de consultas S QL QL

IES Celia Viñas (Almería) - 2019/2020

1.1.7 Subconsult nsultas as corr correlaci elacionadas onadas 1.1.7.5 Subco 16. Lista el nombre de cada fabricante 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 más caro del fabricante fabricante Lenovo.

1. 1.1. 1.88 Su Subc bcon onsu sult ltas as (E (En n la cl cláu áusu sula la HAVING) 7. Devue Devuelv lvee un li list stad ado o co con n to todo doss lo loss nomb nombre ress de lo loss fa fabr bric icant antes es qu quee ti tiene enen n el mi mism smo o númer número o de prod produc ucto toss que el fabricante Lenovo.

1.22 Ge Gessti tión ón de em empl pleead ados os 1. 1.2.1 1.2 .1 Mo Model delo o ent entida idad/r d/rela elació ción n

1.2. 1. 2.22 Ba Base se de da dato toss pa parra My MySQ SQLL

DROP   DATABASE DATABASE IF   EXISTS   empleados; empleados; CREATE   DATABASE DATABASE emple empleados ados   CHARACTER CHARACTER SET   utf8mb4; utf8mb4;

USE emple empleados ados; ; CREAT CREATE E TABLE   departamento   (

codigo   INT   UNSIGNED AUTO_INCREMENT   PRIMARY PRIMARY KEY, nombre   VARCHAR(100)   NOT NUL NULL L, presu presupuest puesto o DOUBL DOUBLE E UNSIG UNSIGNED NED   NOT NUL NULL L, NULL L gastos s DOUBL DOUBLE E UNSIG UNSIGNED NED   NOT NUL gasto

José Juan Sánchez Hernández

11

 

Ejercicios. Realización de consultas S QL QL

IES Celia Viñas (Almería) - 2019/2020

); CREAT CREATE E TABLE   empleado   (

codigo   INT   UNSIGNED AUTO_INCREMENT   PRIMARY PRIMARY KEY, nif   VARCHAR(9)   NOT NUL NULL L UNI UNIQUE QUE, NULL L, nombre   VARCHAR(100)   NOT NUL NULL L, apellido1   VARCHAR(100)   NOT NUL apellido2   VARCHAR(100), codigo_departamento   INT   UNSIGNED, UNSIGNED, FOREI FOREIGN GN KEY   (codigo_departamento) codigo_departamento)   REFERENCES REFERENCES departamento departamento( (codigo codigo) ) ); INSERT 'Desarrollo', 120 120000 000, , 600 6000); 0); INSERT INTO   departamento   VALUES(1,   'Desarrollo', INSERT 'Sistemas', 150 150000 000, , 210 21000) 00); ; INSERT INTO   departamento   VALUES(2,   'Sistemas', INSER INSERT T INTO   departamento   VALUES(3,   'Recursos 'Recursos Human Humanos' os', , 280 280000 000, , 250 25000) 00); ; INSERT T INTO   departamento   VALUES(4,   'Contabilidad', 'Contabilidad', 110 110000 000, , 300 3000); 0); INSER INSER INSERT T INTO   departamento   VALUES(5,   'I+D', 'I+D', 375000 375000, , 380 380000 000); ); INSERT T INTO   departamento   VALUES(6,   'Proyectos', 'Proyectos', 0, 0); INSER

'Publicidad', 0, 1000 1000); ); INSERT INTO   departamento   VALUES(7,   'Publicidad', INSERT INSERT INTO   empleado   VALUES(1,   '32481596F', INSERT '32481596F',   'Aarón' 'Aarón', ,   'Rivero', 'Rivero',   'Gómez', 'Gómez', 1); 1); INSER INSERT T INTO   empleado   VALUES(2,   'Y5575632D', 'Y5575632D',   'Adela' 'Adela', ,   'Salas', 'Salas',   'Díaz', 'Díaz', 2); 2); INSERT 'R6970642B',   'Adolfo' 'Adolfo', ,   'Rubio', 'Rubio',   'Flores', 'Flores', 3); 3); INSERT INTO   empleado   VALUES(3,   'R6970642B', INSER INSERT T INTO   empleado   VALUES(4,   '77705545E', '77705545E',   'Adrián' 'Adrián', ,   'Suárez', 'Suárez',   NULL, 4); 4); INSERT INTO   empleado   VALUES(5,   '17087203C', INSERT '17087203C',   'Marcos' 'Marcos', ,   'Loyola', 'Loyola',   'Méndez' 'Méndez', , 5); 5); INSERT T INTO   empleado   VALUES(6,   '38382980M', '38382980M',   'María' 'María', ,   'Santana', 'Santana',   'Moreno' 'Moreno', , 1); 1); INSER

'80576669X',   'Pilar' 'Pilar', ,   'Ruiz', 'Ruiz',   NULL, 2); 2); INSER INSERT T INTO   empleado   VALUES(7,   '80576669X', INSERT '71651431Z',   'Pepe' 'Pepe', ,   'Ruiz', 'Ruiz',   'Santana', 'Santana', 3); 3); INSERT INTO   empleado   VALUES(8,   '71651431Z', INSERT INTO   empleado   VALUES(9,   '56399183D', INSERT '56399183D',   'Juan' 'Juan', ,   'Gómez', 'Gómez',   'López', 'López', 2); 2);

'46384486H',   'Diego', 'Diego','Flores' 'Flores', ,   'Salas', 'Salas', 5); 5); INSERT INTO   empleado   VALUES(10,   '46384486H', INSERT INSERT T INTO   empleado   VALUES(11,   '67389283A', '67389283A',   'Marta', 'Marta','Herrera' 'Herrera', ,   'Gil' 'Gil', , 1); 1); INSER INSERT INTO   empleado   VALUES(12,   '41234836R', INSERT '41234836R',   'Irene', 'Irene','Salas' 'Salas', ,   'Flores', 'Flores',   NULL); INSERT '82635162B',   'Juan Anton Antonio' io', ,'Sáez' 'Sáez', ,   'Guerrero', 'Guerrero', INSERT INTO   empleado   VALUES(13,   '82635162B', NULL);

1.2.3 Cons nsul ulta tass so sobr bree un unaa ta tabl blaa 1.2.3 Co 1. Lista el primer apellido de todos los empleados. 2. Lista el primer apellido de los empleados eliminando eliminando los apellidos que est estén én repetidos. 3. Lista todas las columnas de la tabla empleado. 4. Lista el nombre y los apellidos de todos todos los empleados. 5. Lista el código código de los departamentos de los empleados que ap aparecen arecen en la tabla empleado. 6. Lista el código código de los departamentos de los empleados que ap aparecen arecen en la tabla empleado, eliminando los códigos que aparecen repetidos.

José Juan Sánchez Hernández

12

 

Ejercicios. Realización de consultas S QL QL

IES Celia Viñas (Almería) - 2019/2020

7. Lista el nombre y apellidos de los empleados en una única columna. 8. Lista Lista el nombre nombreyy apelli apellidos dos de los emplea empleados dos en una única única column columna, a, convir convirtie tiendo ndo todos todos los caract caractere eress en mayúscula. 9. Lista Lista el nombre nombreyy apelli apellidos dos de los emplea empleados dos en una única única column columna, a, convir convirtie tiendo ndo todos todos los caract caractere eress en minúscula. 10. Lista el código de los empleados junto al nif, 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 departamento y el valor del presupuesto actual del que dispone. Para Para calcular este dato tendrá que restar al valor del presupuesto inicial (columna  presupuesto) los gastos que se han gener generado ado (colu (columna mna gastos). Tenga enga en cuen cuenta ta que en algu algunos nos casos casos pued pueden en exi exist stir ir val valore oress negati negativos vos.. Utilice un alias apropiado para la nueva columna columna que está calculando. 12. Lista el nombre de los departamentos departamentos y el valor del presupuesto actual ordenado de forma ascendente. ascendente. 13. Lista el nombre de todos todos los departamentos ordenados de forma as ascendente. cendente. 14. Lista el nombre de todos todos los departamentos ordenados de forma dess desscendente. cendente. 15. Lis Lista ta los apellidos y el nombre nombre de todos todos los empleados, empleados, ordenados ordenados de forma alfabética alfabética tendiendo tendiendo en cuenta en primer lugar sus apellidos y luego su nombre. 16. 16. Dev Devue uelv lvee una una li list sta a co con n el nombr nombree y el pr pres esup upues uesto to,, de los los 3 de depa part rtam amen ento toss qu quee ti tien enen en mayo mayorr pres presup upues ues-to. 17. 17. Dev Devue uelv lvee unalis unalista ta co con n el no nomb mbre re y el pr pres esup upues uesto to,, de los los 3 depart departam ament entos os qu quee ti tien enen en meno menorr pres presup upues ues-to. 18. Devuelve una lista con el nombre y el gasto, gasto, de los 2 departamentos que tienen mayor gas gasto. to. 19. Devuelve una lista con el nombre y el gasto, gasto, de los 2 departamentos que tienen menor gast gasto. o. tercer era a fi fila la se de debe be in inclu cluir ir 20. 20. Dev Devue uelv lvee una una li list sta a co con n 5 fi fila lass a part partir ir de la te terc rcer era a fi fila la de la tabl tabla a empleado. La terc en la respuesta. La respuesta debe incluir todas las columnas de la tabla empleado. 21. Devuelve una lista con el nombre de los departamentos y el presupuesto, presupuesto, de aquellos que tienen un presupuesto mayor o igual a 150000 euros. 22. 22. Dev Devue uelv lvee una una li list sta a co con n el nombr nombree de losdepart losdepartam ament entos os y el gast gasto, o, de aquel aquello loss qu quee ti tiene enen n meno menoss de 5000 5000 euros de gastos. 23. Devuelve una lista con el nombre de los departamentos departamentos y el presupes presupesto, to, de aquellos que tienen un presupuesto entre 100000 y 200000 euros. Sin utilizar el operador BETWEEN. 24. Devuelve una lista lista con el nombre nombre de los departament departamentos os que no  tienen un presupuesto entre 100000 y 200000 euros. Sin utilizar el operador ope rador BETWEEN. 25. Devue Devuelve lveuna una lis listacon tacon el nombrede nombrede losdepartame losdepartamento ntoss quetie que tienen nen un presup presupues uestoentre toentre 100 100000y 000y 200000 200000 euros. Utilizando el operador BETWEEN. 26. Devuelve una lista lista con el nombre nombre de los departament departamentos os que no  tienen un presupuesto entre 100000 y 200000 euros. Utilizando el operador BETWEEN.

José Juan Sánchez Hernández

13

 

Ejercicios. Realización de consultas S QL QL

IES Celia Viñas (Almería) - 2019/2020

27. Devuelv Devuelvee una lis lista ta conel nombre nombrede de los depart departame ament ntos, os, ga gast stos os y presup presupues uesto to,, de quel quellos los depart departame amento ntoss donde los gastos sean mayores que el presupuesto del que disponen. 28. Devuelve una lista con el nombre de los departamentos, gastos gastos y presupuesto, de aquellos depart departamenamentos donde los gastos sean menores que el presupuesto del que disponen. 29. Devuelve una lista con el nombre de los departamentos, gastos gastos y presupuesto, de aquellos depart departamenamentos donde los gastos sean iguales al presupuesto del que disponen. 30. Lista todos todos los datos de los empleados cuyo segundo apellido sea NULL. 31. Lista todos los datos datos de los empleados cuyo segundo apellido no sea sea NULL. 32. Lista todos todos los datos de los empleados cuyo segundo apellido sea López. utiliz lizar ar el operad operador or 33. Lista Lista to todos dos los datos datos de los emplea empleados dos cuyo cuyo segund segundo o apelli apellido do sea Díaz o Moreno. Sin uti IN. Utiliz lizandoel andoel operad operador or 34. Lista Lista todos todos los datos datos de los emplea empleados dos cuyo cuyo segund segundo o apelli apellido do sea Díaz o Moreno. Uti IN. 35. Lista los nombres, nombres, apellidos y nif de los empleados que trabajan en el departamento 3. 36. Lista los nombres, nombres, apellidos y nif de los empleados que trabajan en los departamentos departamentos 2, 4 o 5.

1.2.4 .4 Con Consul sulta tass mul multit titabl ablaa (Co (Compo mposic sición ión int intern erna) a) 1.2 Resuelva todas las consultas utilizando la sintaxis de SQL1 y SQL2. 1. Devuelve un listado con los empleados y los datos de los departamentos donde trab trabaja aja cada uno. 2. Devuelv Devuelvee un lista listado do conlos emplea empleadosy dosy los datos datos de los depart departame amento ntoss donde donde trab trabaja aja cada cada uno uno.. Ordena 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. 3. Devuelv Devuelvee un lista listado do con el código código y el nombre nombre del depart departame amento nto,, sol solame amente nte de aqu aquello elloss depart departame amento ntoss que tienen empleados. 4. Devue Devuelv lvee un li list stad ado o co con n el có códi digo go,, el no nomb mbre re de dell de depa part rtam ament ento o y el valo valorr de dell pres presup upue uest sto o actu actual al de dell qu quee dispone, solamente de aquellos departamentos que tienen empleados. El valor del presupuesto actual lo pue puede de calcula calcularr resta restando ndo al val valor or del presup presupues uesto to ini inicia ciall (c (colum olumna na presupuesto) el valo valorr de los los gast astos que ha generado (columna gastos). 5. Devuelve el nombre del departamento donde trabaja el empleado que tiene el nif 38382980 M. 38382980M 6. Devuelve el nombre del departamento departamento donde trabaja trabaja el empleado Pep Pepe e Rui Ruiz z San Santan tana a. 7. Devuelve un listado con los datos de los empleados que trabajan trabajan en el departamento de I+D. Ordena el resultado alfabéticamente. 8. Devuelve un listado listado con los datos de los empleados empleados que trabajan trabajan en el departamento departamento de  Sistemas, Contabilidad o I+D. Ordena el resultado alfabéticamente. 9. Devuelve una lista con el nombre nombre de los empleados que tienen los departamentos departamentos que no tienen un presupuesto entre 100000 y 200000 euros.

José Juan Sánchez Hernández

14

 

Ejercicios. Realización de consultas S QL QL

IES Celia Viñas (Almería) - 2019/2020

10. Devuelve un listado con el nombre de los departamentos donde existe existe algún empleado cuyo segundo apellido apellid o sea NULL. Tenga enga en cuen cuentaque taque no debe debe mostr mostrar ar nombre nombress de depart departame amento ntoss que queest estén én rep repeti etidos dos..

1.2.5 Consul sulta tass mul multit titabl ablaa (Co (Compo mposic sición ión ex exte terna rna)) 1.2.5 Con JOIN N y RIGHT JOIN N. LEFT JOI RIGHT JOI Resuelva todas las consultas utilizando las cláusulas LEFT

1. Devue Devuelv lvee un li list stad ado o co con n tod todos os los empleados empleados junto con los datos de los departamentos donde trabajan. Este listado también también debe incluir inclu ir los empleados que no tienen ningún departamento asociado. 2. Devuelv Devuelvee un lista listado do donde donde sól sólo o aparez aparezcan can aquello aquelloss emplea empleados dos que no tienen tienen ningún ningún depart departame amento nto aso aso-ciado. 3. Devuelv Devuelvee un lista listado do donde donde sól sólo o aparez aparezcan can aquello aquelloss depart departame ament ntos os que no tienen tienen ningún ningún emplea empleado do aso aso-ciado. 4. Devuelve un listado con todos los empleados junto con los datos datos de los departamentos donde trabajan. El lista listado do deb debee incluir incluir los emplea empleados dos que no tienen tienen ningún ningún depart departame amento nto aso asocia ciado do y los dep depart artame amento ntoss que no tienen ningún empleado asociado. Ordene el listado alfabéticamente por el nombre del departamento. 5. Devuelve un listado con los empleados 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.6 .6 Con Consul sulta tass res resume umen n 1.2 1. Calcula la suma del presupuesto presupuesto de todos los departamentos. 2. Calcula la media del presupuesto de todos los departamentos. departamentos. 3. Calcula el valor mínimo del presupuesto presupuesto de todos los departamentos. 4. Calcula el nombre nombre del departame departamento nto y el presupuest presupuesto o que tiene asignado, asignado, del depar departam tamento ento co con n menor presupuesto. 5. Calcula el valor máximo del presupuesto presupuesto de todos los departamentos. 6. Calcula el nombre del departamento y el presupuesto presupuesto que tiene asignado, del departamento con con mayor presupuesto. 7. Calcula el número total total de empleados que hay en la ttabla abla empleado. 8. Calcula el número de empleados que no tienen tienen NULL en su segundo apellido. 9. Calculael Calculael número número de emplea empleados dos quehay que hay en cada cada depart departame amento nto.. Tienes Tienes que devolv devolver er dos column columnas,una as,una con el nombre del departamento y otra con el número de empleados que tiene asignados. 10. Calcula el nombre de los departamentos departamentos que tienen más de 2 empleados. empleados. El resultado resultado debe tener dos column col umnas, as, una con el nombre nombredel del depart departame amento nto y otr otra a con el núm número ero de emp emplea leados dos que tiene tiene asi asigna gnados dos.. 11. Calcula el número de empleados que trabajan en cada uno de los dep departamentos. artamentos. El resultado resultado de esta consulta también tiene que incluir aquellos departamentos que no tienen ningún empleado e mpleado asociado.

José Juan Sánchez Hernández

15

 

Ejercicios. Realización de consultas S QL QL

IES Celia Viñas (Almería) - 2019/2020

12. Calcula el número de empleados que trabajan trabajan en cada unos de los depart departamentos amentos que tienen un presupuesto mayor a 200000 euros.

1.2.7 Subconsul onsultas tas 1.2.7 Subc 1.2..7.1 Con oper 1.2 operado adores res bás básic icos os de co compa mpara ració ción n 1. Devuelveunlistadocontodoslosempleadosquetieneeldepartamentode Sistemas. (Si (Sin n uti utiliz lizar ar INNER JOIN). 2. Devuelve el nombre del departamento con con mayor presupuesto presupuesto y la cantidad que tiene tiene asignada. 3. Devuelve el nombre del departamento con con menor presupuesto y la cantidad que tiene asignada.

1.2.77.2 Subco Subconsult nsultas as con ALL y ANY 1.2. 4. Devuelv Devuelvee el nom nombredel bredel depart departame amentocon ntocon mayor mayor presup presupues uestoy toy la cant cantida idad d quetieneasi quetiene asigna gnada.Sin da.Sin hacer hacer uso de MAX, ORDER ORDER BY ni LIMIT. 5. Devuelv Devuelvee el nom nombredel bredel depart departame amentocon ntocon menor menor presup presupues uestoy toy la can cantid tidad ad quetieneasigna quetieneasignada.Sin da.Sin hacer hacer uso de MIN, ORDER ORDER BY ni LIMIT. 6. Devuelve los nombres de los departamentos departamentos que tienen empleados asociado asociados. s. (Utilizando ALL o ANY). 7. Devuelv Devuelvee los nombre nombress de los depart departame amento ntoss que no tienen tienen emplea empleados dos asocia asociados dos.. (Ut (Utili ilizan zando do ALL o ANY). NOT T 1.2.77.3 Subc Subconsul onsultas tas con IN y NO 1.2.

IN

8. Devuelv Devuelvee los nombre nombress de los depart departame ament ntos os que tienen tienen emplea empleados dos asocia asociados dos.. (Ut (Utili iliza zando ndo IN o NO NOT T IN). 9. D Devue evuelve lve los nombre nombress de los depart departame ament ntos os que no tienen tienen emplea empleados dos asocia asociados dos.. (Ut (Utili iliza zando ndo IN o NOT IN).

1.2.7 Subconsul onsultas tas con EXISTS y NOT 1.2.7.4 Subc

EXISTS EXIS TS

10. Devuelv Devuelvee los nombre nombress de los depart departame amento ntoss que tienen tienen emplea empleados dos asocia asociados dos.. (Ut (Utili ilizan zando do EXISTS o NOT EXISTS). 11. Devuelv Devuelvee los nombre nombress de los depart departame amento ntoss que tienen tienen emplea empleados dos asocia asociados dos.. (Ut (Utili ilizan zando do EXISTS o NOT EXISTS).

1.33 Ge Gessti tión ón de ve vent ntas as 1.

José Juan Sánchez Hernández

16

 

Ejercicios. Realización de consultas S QL QL

IES Celia Viñas (Almería) - 2019/2020

1.3.1 Mo 1.3.1 Model delo o ent entida idad/r d/rela elació ción n

1.3. 1. 3.22 Ba Base se de da dattos pa parra My MySQ SQLL

DROP   DATABASE DATABASE IF   EXISTS   ventas; ventas; CREATE   DATABASE DATABASE venta ventas s   CHARACTER CHARACTER SET   utf8mb4; utf8mb4;

USE ven ventas tas; ; CREATE E TABLE   cliente   ( CREAT

id   INT   UNSIGNED AUTO_INCREMENT   PRIMARY PRIMARY KEY, nombre   VARCHAR(100)   NOT NUL NULL L, apellido1   VARCHAR(100)   NOT NUL NULL L, apellido2   VARCHAR(100), ciudad   VARCHAR(100), categor categorí ía   INT   UNSIGNED ); CREAT CREATE E TABLE   comercial   ( PRIMARY KEY, id   INT   UNSIGNED AUTO_INCREMENT   PRIMARY nombre   VARCHAR(100)   NOT NUL NULL L, NULL L, apellido1   VARCHAR(100)   NOT NUL apellido2   VARCHAR(100), comisi comisió ón   FLOAT ); CREATE E TABLE   pedido   ( CREAT

id   INT   UNSIGNED AUTO_INCREMENT   PRIMARY PRIMARY KEY, total DOUBL DOUBLE E   NOT NUL NULL L, fecha   DATE, id_cliente   INT   UNSIGNED   NOT NUL NULL L, NULL L, id_comercial   INT   UNSIGNED   NOT NUL id_cliente)   REFERENCES REFERENCES clien cliente te( (id id), ), FOREI FOREIGN GN KEY   (id_cliente) FOREIGN KEY   (id_comercial) FOREIGN id_comercial)   REFERENCES REFERENCES comer comercial cial( (id id) ) );

José Juan Sánchez Hernández

17

 

Ejercicios. Realización de consultas S QL QL

IES Celia Viñas (Almería) - 2019/2020

INSER INSERT T INTO   cliente   VALUES(1,   'Aarón' 'Aarón', ,   'Rivero' 'Rivero', ,   'Gómez', 'Gómez',   'Almería' 'Almería', , 100 100); ); INSERT INTO   cliente   VALUES(2,   'Adela' INSERT 'Adela', ,   'Salas' 'Salas', ,   'Díaz', 'Díaz',   'Granada', 'Granada', 200 200); ); INSERT 'Adolfo', ,   'Rubio', 'Rubio',   'Flores', 'Flores',   'Sevilla', 'Sevilla',   NULL); INSERT INTO   cliente   VALUES(3,   'Adolfo' INSERT INTO   cliente   VALUES(4,   'Adrián' INSERT 'Adrián', ,   'Suárez', 'Suárez',   NULL,   'Jaén', 'Jaén', 300 300); ); INSER INSERT T INTO   cliente   VALUES(5,   'Marcos' 'Marcos', ,   'Loyola', 'Loyola',   'Méndez', 'Méndez',   'Almería', 'Almería', 200 200); ); INSERT T INTO   cliente   VALUES(6,   'María' 'María', ,   'Santana' 'Santana', ,   'Moreno', 'Moreno',   'Cádiz', 'Cádiz', 100 100); ); INSER INSERT INTO   cliente   VALUES(7,   'Pilar' INSERT 'Pilar', ,   'Ruiz' 'Ruiz', ,   NULL,   'Sevilla', 'Sevilla', 300 300); );

'Pepe', ,   'Ruiz' 'Ruiz', ,   'Santana' 'Santana', ,   'Huelva', 'Huelva', 200 200); ); INSER INSERT T INTO   cliente   VALUES(8,   'Pepe' INSERT 'Guillermo', ,   'López', 'López',   'Gómez', 'Gómez',   'Granada', 'Granada', 225 225); ); INSERT INTO   cliente   VALUES(9,   'Guillermo' INSER INSERT T INTO   cliente   VALUES(10,   'Daniel' 'Daniel', ,   'Santana', 'Santana',   'Loyola', 'Loyola',   'Sevilla', 'Sevilla', 125 125); ); INSER INSERT T INTO   comercial   VALUES(1,   'Daniel', 'Daniel',   'Sáez', 'Sáez',   'Vega', 'Vega', 0.1 0.15); 5); INSER INSERT T INTO   comercial   VALUES(2,   'Juan', 'Juan',   'Gómez', 'Gómez',   'López', 'López', 0.1 0.13); 3); INSERT T INTO   comercial   VALUES(3,   'Diego', 'Diego','Flores' 'Flores', ,   'Salas', 'Salas', 0.1 0.11); 1); INSER INSERT 'Marta','Herrera' 'Herrera', ,   'Gil', 'Gil', 0.1 0.14); 4); INSERT INTO   comercial   VALUES(4,   'Marta', INSER INSERT T INTO   comercial   VALUES(5,   'Antonio', 'Antonio','Carretero', 'Carretero',   'Ortega', 'Ortega', 0.1 0.12); 2); INSERT T INTO   comercial   VALUES(6,   'Manuel', 'Manuel','Domínguez', 'Domínguez',   'Hernández', 'Hernández', 0.1 0.13); 3); INSER INSERT INTO   comercial   VALUES(7,   'Antonio', INSERT 'Antonio','Vega', 'Vega',   'Hernández', 'Hernández', 0.1 0.11); 1);

'Alfredo','Ruiz', 'Ruiz',   'Flores', 'Flores', 0.0 0.05); 5); INSERT T INTO   comercial   VALUES(8,   'Alfredo', INSER INSERT INSERT INTO   pedido   VALUES(1, 150.5, 150.5,   '2017-10-05' '2017-10-05', , 5, 2); 2); INSERT 270.65,   '2016-09-10' '2016-09-10', , 1, 5) 5); ; INSERT INTO   pedido   VALUES(2, 270.65, INSERT INTO   pedido   VALUES(3, 65.26, INSERT 65.26,   '2017-10-05' '2017-10-05', , 2, 1); 1); INSERT 110.5,   '2016-08-17' '2016-08-17', , 8, 3); 3); INSERT INTO   pedido   VALUES(4, 110.5, INSERT INTO   pedido   VALUES(5, 948.5, INSERT 948.5,   '2017-09-10' '2017-09-10', , 5, 2); 2); INSERT 2400.6,   '2016-07-27' '2016-07-27', , 7, 1) 1); ; INSERT INTO   pedido   VALUES(6, 2400.6,

5760,   '2015-09-10' '2015-09-10', , 2, 1) 1); ; INSERT INTO   pedido   VALUES(7, 5760, INSERT INSERT INTO   pedido   VALUES(8, 1983.43, INSERT 1983.43,   '2017-10-10' '2017-10-10', , 4, 6); INSERT 2480.4,   '2016-10-10' '2016-10-10', , 8, 3) 3); ; INSERT INTO   pedido   VALUES(9, 2480.4,

250.45,   '2015-06-27' '2015-06-27', , 8, 2); INSERT INTO   pedido   VALUES(10, 250.45, INSERT INSERT 75.29,   '2016-08-17' '2016-08-17', , 3, 7) 7); ; INSERT INTO   pedido   VALUES(11, 75.29, INSERT INTO   pedido   VALUES(12, 3045.6, INSERT 3045.6,   '2017-04-25' '2017-04-25', , 2, 1); INSERT 545.75,   '2019-01-25' '2019-01-25', , 6, 1); INSERT INTO   pedido   VALUES(13, 545.75, INSERT 145.82,   '2017-02-02' '2017-02-02', , 6, 1); INSERT INTO   pedido   VALUES(14, 145.82, INSERT INTO   pedido   VALUES(15, 370.85, INSERT 370.85,   '2019-03-11' '2019-03-11', , 1, 5); INSERT 2389.23,   '2019-03-11' '2019-03-11', , 1, 5) 5); ; INSERT INTO   pedido   VALUES(16, 2389.23,

1.3.3 Co 1.3.3 Cons nsul ulta tass so sobr bree un unaa ta tabl blaa 1. Devuelv Devuelvee un list listado ado con to todos dos los pedi pedidos dos que que se han real realiz izado ado.. Los ped pedido idoss deben deben esta estarr ord ordena enados dos 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. Devuel Devuelve ve un lista listado do con con los identi identific ficado adoresde resde losclientes losclientes quehan que han re reali alizad zado o algún algún pedido.Ten pedido.Tenga ga en cuencuenta 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 total sea superior a 500€.

José Juan Sánchez Hernández

18

 

Ejercicios. Realización de consultas S QL QL

IES Celia Viñas (Almería) - 2019/2020

5. Devue Devuelv lvee un li list stad ado o co con n el nom nombr bree y lo loss apel apelli lido doss de lo loss co come merc rcia iale less qu quee ti tien enen en una una co comi misi sión ón en entr tree 0. 0.05 05 y 0.11. 6. Devuelve el valor de la comisión de mayor valor que exis existe te en la tabla comercial. 7. Devuelve el identificador identificador,, nombre y primer apellido apellido de aquellos aquellos clientes cuyo segundo apellido apellido no  es NULL. El listado deberá estar ordenado alfabéticamente por apellidos y nombre. 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. 9. Devuelve un listado de los nombres de los clientes que no empiezan por A. El listado deberá estar ordenado alfabéticamente. 10. Devuelve un listado con los nombres de los comerciales comerciales que terminan por el o  o. Tenga en cuenta que se deberán eliminar los nombres repetidos.

1.3. 1.3.4 4 Con Consul sulta tass mul multit titabl ablaa (Co (Compo mposic sición ión int intern erna) a) Resuelva todas las consultas utilizando la sintaxis de SQL1 y SQL2. 1. Devuelve un listado con el identificador, identificador, nombre y los apellidos de todos los clientes que han realizado algún pedido. El listado debe estar ordenado alfabéticamente y se deben eliminar los elementos repetidos. 2. Devue Devuelv lvee un li list stad ado o qu quee mues muestr tree to todo doss lo loss pe pedi dido doss qu quee ha re real aliz izad ado o cada cada client cliente. e. El re resu sult ltad ado o de debe be mosmostrar todos los datos de los pedidos y del de l cliente. El listado debe mostrar los datos de los clientes clien tes ordenados alfabéticamente. 3. Devuelve un listado que muestre todos todos los pedidos en los que ha participado un com comercial. ercial. El resultado de debe be most mostra rarr to todo doss lo loss da dato toss de lospedido lospedidoss y de lo loss co come merc rcia iales les.. El li list stad ado o debe debe most mostra rarr los los da dato toss de los 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 realizaron un pedido durante el año 2017, cuya cantidad esté entre 300 € y 1000 €. 6. Devuel Devuelve ve el nombrey nombrey losapellidosde losapellidosde to todoslos doslos comerc comercial iales es queha partic particip ipadoen adoen algún algún pedidoreali pedidorealizad zado o por Marí María San Santan tana a Mor Moreno eno. Daniel iel Sáez 7. Devue Devuelv lvee el nomb nombre re de to todo doss losclient losclientes es qu quee han han re real aliz izad ado o algú algún n pe pedi dido do co con n el co come merc rcia iall Dan Vega.

1.3.5 Con 1.3.5 Consul sulta tass mul multit titabl ablaa (Co (Compo mposic sición ión ex exte terna rna)) Resuelva todas las consultas utilizando las cláusulas LEFT LEFT JOI JOIN N y RIGHT RIGHT JOI JOIN N. 1. Devuelv Devuelvee un lista listado do con todo todoss los clientes clientes junto con los datos de los pedidos que han realizado. EstelistaEste listado tamb tambié ién n debe debe incl inclui uirr lo loss cl clien iente tess qu quee no han han re real aliz izad ado o ni ning ngún ún ped pedid ido. o. El li list stad ado o de debe be esta estarr orde ordenad nado o alfabéticamente por el primer apellido, segundo apellido y nombre de los clientes.

José Juan Sánchez Hernández

19

 

Ejercicios. Realización de consultas S QL QL

IES Celia Viñas (Almería) - 2019/2020

2. Devuel Devuelve ve un lista listado do con tod todos os los comercia comerciales les 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 solamente muestre los clientes que no han realizado ningún pedido. 4. Devuelve un listado que solamente solamente muestre los comerciales comerciales que no han realizado realizado ningún pedido. 5. Devue Devuelv lvee un li list stad ado o co con n lo loss cli clien ente tess qu quee no han han re real aliz izad ado o ni ningú ngún n pe pedi dido do y de los los co come merc rcia ialesque lesque no han 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 realizar las consultas anteriores con  NAT NATURA URAL L LEF LEFT T JOI JOIN N o   NATUR NATURAL AL RIGHT JOIN? Justifique su respuesta.

1.3.6 6 Con Consul sulta tass res resume umen n 1.3. 1. Calcula la cantidad total total que suman todos los pedidos que aparecen en la tabla pedido. 2. Calcula la cantidad media de todos todos los pedidos que ap aparecen arecen en la tabla pedido. 3. Calcula el número total total de comerciales distintos distintos que aparecen aparecen en la tabla pedido. 4. Calcula el número total total de clientes que aparecen en la tabla cliente. 5. Calcula cuál es la mayor cantidad que aparece aparece en la tabla pedido. 6. Calcula cuál es la menor menor cantidad que aparece aparece en la tabla pedido. 7. Calcula cuál es el valor máximo de categoría categoría para para cada una de las ciudades ciudades que aparece en la tabla tabla cliente. 8. Calcu Calcula la cuá cuáll es el máxi máximovalo movalorr de lo loss pedid pedidosreal osrealiz izad ados os du dura rant ntee el mi mism smo o dí día a pa paracadauno racadauno de los los clienclientes. 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, clien te, nombre, apellidos, la fecha y el valor de la cantidad. 9. Calcula cuál es el máximo máximo valor de los pedidos pedidos realizados realizados durante 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 realizados para cada uno de los comerc comerciales iales duran durante te la fecha 2016-08-17. Muestra el identificador del comercial, nombre, apellidos y total. 11. Devuelve un listado con el identificador identificador de cliente, nombre y apellidos y el número ttotal otal 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. 12. Devuelve un listado con el identificador identificador de cliente, nombre y apellidos y el número ttotal otal de pedidos que ha realizado cada uno de clientes du dura rant ntee el añ año o 20 2017 17.

José Juan Sánchez Hernández

20

 

Ejercicios. Realización de consultas S QL QL

IES Celia Viñas (Almería) - 2019/2020

13. Devuelv Devuelvee un lista listado do que muest muestre re el identi identific ficado adorr de cliente cliente,, nombre nombre,, pri primer mer apelli apellido do y el val valor or de la máximá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 pe pedidos didos 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 realiz realizado ado cada año. 15. Devuelve el número total de pedidos que se han realizado realizado cada año.

1.3.7 Sub 1.3.7 Subccons onsult ultas as 1.3..7.1 Con ope 1.3 opera rador dores es bás básic icos os de co compa mpara ració ción n 1. Devuelve un listado listado con todos los pedidos pedidos que ha realizado realizado  Ade Adela la Sa Sala las s Díaz. (Sin utilizar  INNER JOIN). 2. Devuelv Devuelvee el númer número o de pe pedi dido doss en lo loss qu quee ha pa part rtic icip ipad ado o el co come merc rcia iall Dan Daniel iel Sáez Veg Vega a. (Si (Sin n uti utiliz lizar ar INNER JOIN) INNER ER JOI JOIN N) 3. Devuelve los datos del cliente que realizó realizó el pedido más ccaro aro en el año 2019. (Sin utilizar INN

4. Devue Devuelv lvee la fe fech cha a y la ca cant ntid idad ad del pe pedi dido do de menor menor valo valorr re real aliz izad ado o po porr el client clientee Pepe Pepe Rui Ruiz z San Santan tana a. 5. Devue Devuelv lvee un li list stad ado o co con n lo loss da dato toss de losclient losclientes es y lo loss pe pedi dido dos, s, de todo todoss los los client clientes es qu quee han han re real aliz izad ado o un pedido durante el año 2017 con un valor mayor o igual al valor medio de los pedidos re realizados alizados durant durantee ese mismo año.

1.3.7.2 Subc 1.3.7 Subconsul onsultas tas con ALL y ANY 6. Devuelve el pedido más caro caro que existe existe en la tabla pedido si hacer uso de MAX, ORD ORDER ER BY ni LIMIT. 7. Devuelve un listado de los clientes que no han realizado realizado ningún pedido. (Utilizando (Utilizando ANY o ALL). 8. Devuelve un listado de los comerciales que no han realizado realizado ningún pedido. (Utilizando (Utilizando ANY o ALL). NOT T 1.3. 1.3.77.3 Subc Subconsul onsultas tas con IN y NO

IN

9. Devuelve un listado de los clientes que no han realizado realizado ningún pedido. (Utilizando (Utilizando IN o NO NOT T IN). 10. Devuelve un listado de los comerciales que no han realizado realizado ningún pedido. (Utilizando (Utilizando IN o NO NOT T IN).

1.3.77.4 Subc Subconsul onsultas tas con EXISTS y NOT 1.3.

EXISTS EXI STS

11. Devuelve un listado de los clientes clientes que no han reali realizado zado ningún pedido. pedido. (Utiliza (Utilizando ndo  EXISTS  o   NOT EXISTS). 12. Devuelve un listado de los comerciales comerciales que no han realizado ningún pedido. (Utilizando EXISTS o NOT EXISTS).

José Juan Sánchez Hernández

21

 

Ejercicios. Realización de consultas S QL QL

IES Celia Viñas (Almería) - 2019/2020

1.4 Jard rdin iner ería ía 1.4 Ja 1.4.1 1.4 .1 Mo Model delo o ent entida idad/r d/rela elació ción n

1.4. 1. 4.22 Ba Base se de da dattos pa parra My MySQ SQLL

José Juan Sánchez Hernández

22

 

Ejercicios. Realización de consultas S QL QL

IES Celia Viñas (Almería) - 2019/2020

DROP   DATABASE DATABASE IF   EXISTS   jardineria; jardineria; CREATE   DATABASE jardi jardineria neria   CHARACTER CHARACTER SET   utf8mb4; utf8mb4;

USE jardi jardineria neria; ; CREAT CREATE E TABLE   oficina   (

codigo_oficina   VARCHAR(10)   NOT NUL NULL L, ciudad   VARCHAR(30)   NOT NUL NULL L, pais   VARCHAR(50)   NOT NUL NULL L, DEFAULT LT NULL, region   VARCHAR(50)   DEFAU codigo_postal   VARCHAR(10)   NOT NUL NULL L, telefono   VARCHAR(20)   NOT NUL NULL L, linea_direccion1   VARCHAR(50)   NOT NUL NULL L, linea_direccion2   VARCHAR(50)   DEFA DEFAULT ULT NULL, PRIMARY codigo_oficina) PRIMARY KEY   (codigo_oficina) ); CREATE CREATE TABLE   empleado   (

codigo_empleado   INTEGE INTEGER R NOT NUL NULL L, nombre   VARCHAR(50)   NOT NUL NULL L, apellido1   VARCHAR(50)   NOT NUL NULL L, DEFAULT NULL, apellido2   VARCHAR(50)   DEFAULT extension   VARCHAR(10)   NOT NUL NULL L, email   VARCHAR(100)   NOT NUL NULL L, NULL L, codigo_oficina   VARCHAR(10)   NOT NUL codigo_jefe   INTEGER INTEGER DEFAU DEFAULT LT NULL, DEFAULT LT NULL, puesto   VARCHAR(50)   DEFAU codigo_empleado), PRIMA PRIMARY RY KEY   (codigo_empleado), FOREI FOREIGN GN KEY   (codigo_oficina) codigo_oficina)   REFERENCES REFERENCES ofici oficina na   (codigo_oficina codigo_oficina), ), FOREIGN codigo_jefe)   REFERENC REFERENCES ES emple empleado ado   (codigo_empleado) codigo_empleado) FOREIGN KEY   (codigo_jefe) ); CREAT CREATE E TABLE   gama_producto   ( NULL L, gama   VARCHAR(50)   NOT NUL descripcion_texto TEXT, TEXT,

descripcion_html TEXT TEXT, , imagen   VARCHAR(256), PRIMA PRIMARY RY KEY   (gama) gama) ); CREATE TABLE   cliente   ( CREATE

codigo_cliente   INTEGE INTEGER R NOT NUL NULL L, nombre_cliente   VARCHAR(50)   NOT NUL NULL L, nombre_contacto   VARCHAR(30)   DEFAU DEFAULT LT NULL, DEFAULT NULL, apellido_contacto   VARCHAR(30)   DEFAULT telefono   VARCHAR(15)   NOT NUL NULL L, fax   VARCHAR(15)   NOT NUL NULL L, linea_direccion1   VARCHAR(50)   NOT NUL NULL L, linea_direccion2   VARCHAR(50)   DEFA DEFAULT ULT NULL, NULL L, ciudad   VARCHAR(50)   NOT NUL

José Juan Sánchez Hernández

23

 

Ejercicios. Realización de consultas S QL QL

IES Celia Viñas (Almería) - 2019/2020

region   VARCHAR(50)   DEFAU DEFAULT LT NULL, pais   VARCHAR(50)   DEFA DEFAULT ULT NULL, codigo_postal   VARCHAR(10)   DEFA DEFAULT ULT NULL, codigo_empleado_rep_ventas   INTEGER INTEGER DEFAU DEFAULT LT NULL, limite_credito   NUMERIC(15,2)   DEFA DEFAULT ULT NULL, PRIMARY KEY   (codigo_cliente), PRIMARY codigo_cliente), FOREI FOREIGN GN KEY   (codigo_empleado_rep_ventas) codigo_empleado_rep_ventas)   REFERENCES REFERENCES emple empleado ado   (codigo_empleado) codigo_empleado) ); CREATE E TABLE   pedido   ( CREAT

codigo_pedido   INTEGE INTEGER R NOT NUL NULL L, fecha_pedido   date date NO NOT T NU NULL LL, fecha_esperada   date date NO NOT T NU NULL LL, fecha_entrega   date date DEF DEFAUL AULT T NUL NULL L, NULL L, estado   VARCHAR(15)   NOT NUL comen comentario tarios s TEXT TEXT, , codigo_cliente   INTEGE INTEGER R NOT NUL NULL L, PRIMARY RY KEY   (codigo_pedido), codigo_pedido), PRIMA codigo_cliente)   REFERENCES REFERENCES clien cliente te   (codigo_cliente codigo_cliente) ) FOREIGN KEY   (codigo_cliente) FOREIGN ); CREATE CREATE TABLE   producto   (

codigo_producto   VARCHAR(15)   NOT NUL NULL L, NULL L, nombre   VARCHAR(70)   NOT NUL NULL L, gama   VARCHAR(50)   NOT NUL dimensiones   VARCHAR(25)   NULL, proveedor   VARCHAR(50)   DEFAULT DEFAULT NULL, descr descripcio ipcion n text   NULL, cantidad_en_stock   SMALLI SMALLINT NT NOT NUL NULL L, precio_venta   NUMERIC(15,2)   NOT NUL NULL L, precio_proveedor   NUMERIC(15,2)   DEFAULT DEFAULT NULL, PRIMA PRIMARY RY KEY   (codigo_producto), codigo_producto), FOREIGN GN KEY   (gama) gama)   REFERENCES REFERENCES gama_producto   (gama gama) ) FOREI ); CREATE CREATE TABLE   detalle_pedido   (

codigo_pedido   INTEGE INTEGER R NOT NUL NULL L, codigo_producto   VARCHAR(15)   NOT NUL NULL L, cantidad   INTEGE INTEGER R NOT NUL NULL L, precio_unidad   NUMERIC(15,2)   NOT NUL NULL L, numero_linea   SMALLI SMALLINT NT NOT NUL NULL L, PRIMA PRIMARY RY KEY   (codigo_pedido, codigo_pedido,   codigo_producto), codigo_producto), FOREI FOREIGN GN KEY   (codigo_pedido) codigo_pedido)   REFERENCES REFERENCES pedid pedido o   (codigo_pedido), codigo_pedido), FOREIGN GN KEY   (codigo_producto) codigo_producto)   REFERENCES REFERENCES produ producto cto   (codigo_producto) codigo_producto) FOREI ); CREATE TABLE   pago   ( CREATE

codigo_cliente   INTEGE INTEGER R NOT NUL NULL L, NULL L, forma_pago   VARCHAR(40)   NOT NUL

José Juan Sánchez Hernández

24

 

Ejercicios. Realización de consultas S QL QL

IES Celia Viñas (Almería) - 2019/2020

id_transaccion   VARCHAR(50)   NOT NUL NULL L, fecha_pago   date date NO NOT T NU NULL LL, NULL L, total   NUMERIC(15,2)   NOT NUL PRIMA PRIMARY RY KEY   (codigo_cliente, codigo_cliente,   id_transaccion), id_transaccion), FOREIGN GN KEY   (codigo_cliente) codigo_cliente)   REFERENCES REFERENCES clien cliente te   (codigo_cliente codigo_cliente) ) FOREI );

1.4.3 Da 1.4.3 Dato toss Acceder al script  SQL  SQL para la creación de la base de datos y la inserción de datos: jardineria.sql.

1.4.4 Cons nsul ulta tass so sobr bree un unaa ta tabl blaa 1.4.4 Co 1. Devuelve un listado con el código de oficina y la ciudad donde hay oficinas. 2. Devuelve un listado con la ciudad y el teléfono de las oficinas de España. 3. Devuelve un listado con el nombre, apellidos y email de los empleados cuyo jefe tiene un códig código o de jefe igual a 7. 4. Devuelve el nombre del puesto, nombre, nombre, apellidos y email del jefe de la empresa. 5. Devuelv Devuelvee un lista listado do con con el nom nombre bre,, apellid apellidos os y puest puesto o de aquello aquelloss emplea empleadosque dosque no sean sean repres represent entant antes es de ventas. 6. Devuelve un listado con el nombre de los todos los clientes españoles. 7. Devuelve un listado con los distintos distintos estados por los que puede pasar un pedido. 8. Devuel Devuelve ve un lista listado do conel códig código o de clientede clientede aquello aquelloss cliente clientess quereali querealiza zaronalgún ronalgún pago pago en 200 2008. 8. Tenga enga en cue cuentaque ntaque deberáelimi deberáeliminar nar aquello aquelloss códig códigos os de cli client entee queapa que aparez rezcanrepet canrepetido idos. s. Res Resuelv uelva a la consul consulta ta:: • Utilizando la función YEAR de MySQL. MySQL. MySQL. • Utilizando la función DATE_FORMAT de MySQL. • Sin utilizar ninguna de las funciones anteriores. 9. Devuelve un listado con el código de pedido, códi código go de cliente, fecha esperada y fecha de entrega de los pedidos que no han sido entregados a tiempo. 10. Devuelve un listado con el código de pedido, códi código go 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 eesperada. sperada. • Utilizando la función ADDDATE de MySQL. MySQL. MySQL. • Utilizando la función DATEDIFF de MySQL. • ¿Sería posible resolver esta esta consulta consulta utilizando el operador operador de suma + o resta -? 11. Devuelve un listado de todos los pedidos que fueron rechazados en 2009. 12. Devuelve un listado de todos todos los pedidos que han ssido ido entregados en el mes de enero de cualquier año. 13. Devuelve un listado con todos todos los pagos que se realizaron en el año 2008 mediante Paypal. Ordene el resultado de mayor a menor.

José Juan Sánchez Hernández

25

 

Ejercicios. Realización de consultas S QL QL

IES Celia Viñas (Almería) - 2019/2020

14. 14. Dev Devue uelv lvee un li list stad ado o co con n to toda dass las las fo form rmas as de pa pago go qu quee apar aparec ecen en en la tabl tabla a pago. Teng enga a en cu cuent enta a qu quee no deben aparecer formas de pago repetidas. que ti tien enen en más más 15. 15. Dev Devue uelv lvee un li list stad ado o co con n to todo doss losprod losproduc ucto toss qu quee pe pert rtene enece cen n a la gama gama Ornamentales y que de 100 uni unida dade dess en st stoc ock. k. El li list stad ado o de debe berá rá es esta tarr or orden denad ado o po porr su preci precio o de venta venta,, mo most stra rand ndo o en prim primer er lugar los de mayor precio. 16. Devuelve un listado listado con todos los clientes clientes que sean de la ciudad de  Madrid  y cuyo representante de ventas tenga el código de empleado 11 o 30.

1.4.5 Consul sulta tass mul multit titabl ablaa (Co (Compo mposic sición ión int intern erna) a) 1.4.5 Con Resuelva Resuel va to todas das las consul consulta tass utiliz utilizand ando o la sinta sintaxis xis de SQL1 y SQL2. Las con consul sulta tass con sin sinta taxis xis de SQL2 se deben deben INNER ER JOI JOIN N y NATURAL NATURAL JOIN. resolver con INN 1. Obtén un listado listado con el nombre de cada cliente y el nombre y apellido de su representante de ventas. 2. Mues Muestr tra a el nomb nombre re de lo loss cli clien ente tess qu quee haya hayan n re real aliz izad ado o pa pago goss ju junt nto o co con n el nomb nombre re de sus sus re repr pres esent entan ante tess de ventas. 3. Mues Muestr tra a el nomb nombre re de lo loss cli client entes es qu quee no hay hayan an realiz realizado ado pag pagos os jun junto to con con el nom nombre bre de sus rep repres resent entanantes de ventas. 4. Devuelve el nombre de los clientes que han hecho pagos y el nombre de sus represent representantes antes junto con la ciudad de la oficina a la que pertenece el representante. 5. Devuelve el nombre nombre de los clientes 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. 6. Lista la dirección de las oficinas que tengan clientes en Fuenlabrada. 7. Devuelve el nombre de los clientes y el nombre de sus represent representantes antes junto con la ciudad de la oficina a la que pertenece el representante. 8. Devuelve un listado con el nombre de los empleados junto junto con el nombre de sus jefes. 9. Devue Devuelv lvee un li list stad ado o qu quee mues muestr tree el nomb nombre re de ca cada da empl emplea eado dos, s, el nomb nombre re de su je jefe fe y el nombr nombree de dell je jefe fe de sus jefe. 10. Devuelve el nombre de los clientes a los que no se les ha entregado a tiempo un pedido. 11. Devuelve un listado de las diferentes gamas de product producto o que ha comprado cada cliente.

1.4.6 Con 1.4.6 Consul sulta tass mul multit titabl ablaa (Co (Compo mposic sición ión ex exte terna rna)) Resuelva todas las consultas utilizando las cláusulas   LEFT LEFT JOI JOIN N,   RIGHT RIGHT JOI JOIN N,   NATURA NATURAL L LEF LEFT T JOI JOIN N y NAT NATURA URAL L RIG RIGHT HT JOI JOIN N. 1. Devuelve un listado que muestre muestre solamente los clientes que no han realizado ningún pago. 2. Devuelve un listado que muestre muestre solamente los clientes que no han realizado ningún pedido. 3. Devue Devuelv lvee un li list stad ado o qu quee mu mues estr tree lo loss cli client entes es qu quee no han han re real aliz izad ado o ni ning ngún ún pa pagoy goy los los qu quee no han han re real aliz izad ado o ningún pedido.

José Juan Sánchez Hernández

26

 

Ejercicios. Realización de consultas S QL QL

IES Celia Viñas (Almería) - 2019/2020

4. Devuelve un listado que muestre muestre solamente los empleados que no tienen una oficina asociada. 5. Devuelve un listado que muestre muestre solamente los empleados que no tienen un cliente asociado. 6. Devuelve un listado que muestre muestre solamente los empleados que no tienen un cliente asociado junt junto o con los datos de la oficina donde trabajan. 7. Devuelve un listado que muestre muestre los empleados que no tienen una oficina asociada y los que no tienen un cliente asociado. 8. Devuelve un listado de los productos que nunca han ap aparecido arecido en un pedido. 9. Devuelve un listado de los productos que que nunca han aparecido en un pedido. El resultado debe mostrar mostrar el nombre, la descripción y la imagen del producto. 10. Devuelve las oficinas oficinas donde 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 realizado ningún pago. 12. Devuelve un listado con los datos datos de los empleados que no tienen clientes asociados y el nombre de su su  jefe asociado.

1.4.7 .7 Con Consul sulta tass res resume umen n 1.4 1. ¿Cuántos empleados hay en la compañía? 2. ¿Cuántos clientes tiene cada país? 3. ¿Cuál fue el pago medio medio en 2009? 4. ¿Cuántos pedidos hay en cada estado? 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 bar barato ato en una misma consulta. 6. Calcula el número de clientes que tiene la empresa. 7. ¿Cuántos clientes tiene la ciudad de Madrid? 8. ¿Calcula cuántos clientes clientes tiene cada una de las ciudades q que ue empiezan por M? 9. Devuelve el nombre de los representantes de ventas y el número de clientes al que atiende cada uno uno.. 10. Calcula el número de clientes que no tiene asignado asignado representante de vent ventas. as. 11. Calcula Calcula la fecha fecha del pri primer mer y últ último imo pago pago realiz realizado ado por cada cada uno de los cli client entes. es. El lis lista tado do deberámost deberámostrar rar 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 p productos roductos que aparecen en cada uno de los pedidos. 14. 14. Dev Devue uelv lvee un li list stad ado o de lo loss 20 pr prod oduc ucto toss más más vendi vendido doss y el númer número o tota totall de uni unida dade dess qu quee se han han ve vend ndid ido o de cada uno. El listado deberá estar ordenado por el número total de unidades vendidas.

José Juan Sánchez Hernández

27

 

Ejercicios. Realización de consultas S QL QL

IES Celia Viñas (Almería) - 2019/2020

15. La facturación que ha tenido la empresa en toda la his historia, toria, indicando la base imponible, el IVA y el to total tal 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 anterior,, pero agrupada por código de producto. producto. 17. La misma misma inf inform ormaci ación ón que en la pregun pregunta ta anterio anteriorr, pero pero agrupa agrupada da por cód códigode igode produc producto to fil filtr trada ada por los códigos que empiecen por OR. 18. 18. Li List sta a las las venta ventass to tota tales les de lo loss pr prod oduc ucto toss qu quee haya hayan n fa fact ctur urad ado o má máss de 3000 3000 eur euros os.. Se most mostra rará rá el nomb nombre re,, unidades vendidas, total facturado facturado y total facturado con impuestos (21% IVA).

1.4 1.4.8 .8 Sub Subccons onsult ultas as 1.4.8. 1.4 .8.11 Con ope opera rador dores es bás básic icos os de co compa mpara ració ción n 1. Devuelve el nombre del cliente con mayor límite límite de crédito. crédito. 2. Devuelve el nombre del producto que tenga tenga el precio de venta más caro. 3. Devuelv Devuelvee el nombredel nombredel produc producto to del quese que se han ven vendid dido o másunidades. másunidades. (T (Teng enga a en cuen cuenta ta queten que tendr drá á que calcular cuál es el número total de unidades que se han vendido de cada producto a partir de los datos Una vezque se sepa pa cu cuál ál es el có códi digodel godel prod produc ucto to,, pu pued edee obte obtene nerr su nomb nombre re de la tabl tabla a detalle_pedido. Una fácilmente.) INNER ER JOI JOIN N). 4. Losclientes Losclientes cuyolímite cuyolímite de crédit crédito o seamayor que los pagos pagos que haya haya realiz realizado ado.. (Si (Sin n uti utiliz lizar ar INN

5. Devuelve el producto que más unidades tiene en stock. 6. Devuelve el producto que menos unidades tiene en stock. 7. Devuelve el nombre, los apellidos y el email de los empleados que est están án a cargo de Alberto Soria.

1.4. 4.8. 8.22 Su Subc bcons onsul ulta tass co con n ALL y AN ANY  Y  1. 8. Devuelve el nombre del cliente con mayor límite límite de crédito. crédito. 9. Devuelve el nombre del producto que tenga tenga el precio de venta más caro. 10. Devuelve el producto que menos unidades tiene en stock.

1.4.8. 1.4. 8.33 Su Subc bcon onsu sult ltas as co con n IN y NO NOT T IN 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 realizado ningún pago. 13. Devuelve un listado que muestre solamente los clientes que sí han realizado realizado ningún pago. 14. Devuelve un listado de los productos que nunca han ap aparecido arecido en un pedido.

José Juan Sánchez Hernández

28

 

Ejercicios. Realización de consultas S QL QL

IES Celia Viñas (Almería) - 2019/2020

15. 15. Dev Devue uelv lvee el nombr nombre, e, apell apellid idos os,, pu pues esto to y te teléf léfon ono o de la ofic oficin ina a de aquel aquello loss empl emplea eado doss qu quee no sean sean re repr preesentante de ventas de ningún cliente. 16. Devuelve las oficinas oficinas donde 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 realizado ningún pago.

1.4 1.4.8. .8.4 4 Sub Subco consu nsult ltas as co con n EXI EXIST STS S y NO NOT T EXI EXIST STS S 18. Devuelve un listado que muestre solamente los clientes que no han realizado realizado ningún pago. 19. Devuelve un listado que muestre solamente los clientes que sí han realizado realizado ningún pago. 20. Devuelve un listado de los productos que nunca han ap aparecido arecido en un pedido. 21. Devuelve un listado de los productos que han aparecido aparecido en un pedido alguna vez.

1.4.8 1.4.8.5 .5 Subco Subconsult nsultas as corr correlaci elacionadas onadas

1.4.9 1.4 .9 Con Consul sulta tass va varia riadas das 1. Devue Devuelv lvee el li list stad ado o de cli clien ente tess indi indica cand ndo o el no nomb mbre re de dell clien cliente te y cu cuánt ántos os ped pedid idos os ha re real aliz izad ado. o. Ten enga ga en cuenta que pueden existir clientes que no han realizado ningún pedido. 2. Devuelve un listado listado con los nombres de los clientes y el total paga pagado do por cada uno de ellos. T Tenga enga 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 alfa alfabétic béticament amentee de menor a mayor. 4. Devuelve el nombre del cliente, el nombre y primer primer apellido de su representant representantee de ventas y el número de tel teléfo éfono no de la ofi oficin cina a del repres represent entant antee de ventas, ventas, de aquello aquelloss cli client entes es que no hayan hayan realiz realizado ado nin ningún gún pago. 5. Devuelve el listado de clientes donde aparezca aparezca el nombre del cliente, el nombre y prim primer er apellido de su representante de ventas y la ciudad donde está su oficina. 6. Devue Devuelv lvee el nombr nombre, e, apell apellid idos os,, pu pues esto to y te teléf léfon ono o de la ofic oficin ina a de aquel aquello loss empl emplea eado doss qu quee no sean sean re repr preesentante de ventas de ningún cliente. 7. Devuelv Devuelvee un lista listado do ind indica icandotodaslas ndotodaslas ciudad ciudades es donde donde hay ofi oficin cinas as y el núm númerode erode emplea empleadosque dosque tiene. tiene.

1.5 Univ iver ersi sida dad d (T (Tip ipo o A) 1.5 Un

José Juan Sánchez Hernández

29

 

Ejercicios. Realización de consultas S QL QL

IES Celia Viñas (Almería) - 2019/2020

1.5.1 Mo 1.5.1 Model delo o ent entida idad/r d/rela elació ción n

1.5. 1. 5.22 Ba Base se de da dattos pa parra My MySQ SQLL

DATABASE IF   EXISTS   universidad; universidad; DROP   DATABASE CREATE   DATABASE unive universida rsidad d   CHARACTER CHARACTER SET   utf8mb4; utf8mb4;

USE unive universida rsidad d;

CREATE CREATE TABLE   departamento   ( id   INT   UNSIGNED UNSIGNED AUTO_INCREMENT   PRIMARY PRIMARY KEY,

nombre   VARCHAR(50)   NOT NUL NULL L ); CREATE E TABLE   persona   ( CREAT

id   INT   UNSIGNED UNSIGNED AUTO_INCREMENT   PRIMARY PRIMARY KEY, nif   VARCHAR(9)   UNIQUE, nombre   VARCHAR(25)   NOT NUL NULL L, NULL L, apellido1   VARCHAR(50)   NOT NUL apellido2   VARCHAR(50), ciudad   VARCHAR(25)   NOT NUL NULL L, NULL L, direccion   VARCHAR(50)   NOT NUL telefono   VARCHAR(9), DATE NO NOT T NU NULL LL, fecha_nacimiento   DATE

José Juan Sánchez Hernández

30

 

Ejercicios. Realización de consultas S QL QL

IES Celia Viñas (Almería) - 2019/2020

sex sexo o ENUM ENUM('H' 'H', ,   'M' 'M') )   NOT NUL NULL L, tipo ENU tipo ENUM M('profesor' 'profesor', ,   'alumno') 'alumno')   NOT NUL NULL L ); CREAT CREATE E TABLE   profesor   ( PRIMARY KEY, id_profesor   INT   UNSIGNED   PRIMARY id_departamento   INT   UNSIGNED   NOT NUL NULL L, id_profesor)   REFERENCES REFERENCES perso persona na( (id), id), FOREIGN KEY   (id_profesor) FOREIGN FOREIGN GN KEY   (id_departamento) id_departamento)   REFERENCE REFERENCES S departamento departamento( (id id) ) FOREI

); CREAT CREATE E TABLE   grado   (

id   INT   UNSIGNED UNSIGNED AUTO_INCREMENT   PRIMARY PRIMARY KEY, nombre   VARCHAR(100)   NOT NUL NULL L ); CREAT CREATE E TABLE   asignatura   (

id   INT   UNSIGNED UNSIGNED AUTO_INCREMENT   PRIMARY PRIMARY KEY, nombre   VARCHAR(100)   NOT NUL NULL L, creditos   FLOAT   UNSIGNED   NOT NUL NULL L, NULL L, tipo o ENU ENUM M('básica' 'básica', ,   'obligatoria', 'obligatoria',   'optativa' 'optativa') )   NOT NUL tip curso TINYINT UNSIG UNSIGNED NED   NOT NUL NULL L, cuatrimestre cuatrimest re TINYI TINYINT NT UNSIG UNSIGNED NED   NOT NUL NULL L, UNSIGNED, id_profesor   INT   UNSIGNED, id_grado   INT   UNSIGNED   NOT NUL NULL L, FOREIGN GN KEY(id_profesor) id_profesor)   REFERENCES REFERENCES profe profesor sor( (id_profesor), id_profesor), FOREI id_grado)   REFERENCES REFERENCES grado grado( (id id) ) FOREIGN KEY(id_grado) FOREIGN

); CREATE E TABLE   curso_escolar   ( CREAT

UNSIGNED AUTO_INCREMENT   PRIMARY PRIMARY KEY, id   INT   UNSIGNED anyo_inicio   YEAR YEAR NO NOT T NU NULL LL, YEAR NO NOT T NU NULL LL anyo_fin   YEAR ); CREATE CREAT E TABLE   alumno_se_matricula_asignatura   (

id_alumno   INT   UNSIGNED   NOT NUL NULL L, id_asignatura   INT   UNSIGNED   NOT NUL NULL L, id_curso_escolar   INT   UNSIGNED   NOT NUL NULL L, PRIMA PRIMARY RY KEY   (id_alumno, id_alumno,   id_asignatura id_asignatura, ,   id_curso_escolar), id_curso_escolar), id_alumno)   REFEREN REFERENCES CES perso persona na( (id id), ), FOREIGN GN KEY   (id_alumno) FOREI FOREIGN KEY   (id_asignatura) FOREIGN id_asignatura)   REFERENCES REFERENCES asignatura asignatura( (id id), ), FOREI FOREIGN GN KEY   (id_curso_escolar) id_curso_escolar)   REFERENCES REFERENCES curso_escolar curso_escolar( (id id) ) );

José Juan Sánchez Hernández

31

 

Ejercicios. Realización de consultas S QL QL

IES Celia Viñas (Almería) - 2019/2020

1.5.3 Da 1.5.3 Dato toss Acceder al script  SQL  SQL para la creación de la base de datos y la inserción de datos: universidad_a.sql.

1.5 1.5.4 .4 Co Cons nsul ulta tass so sobr bree un unaa ta tabl blaa 1. Devuelv Devuelvee un lista listado do con el pri primer mer apelli apellido, do, segund segundo o apellid apellido o y el nombre nombre de todos todos los alu alumno mnos. s. El lis lista tado do deberá estar ordenado alfabéticamente de menor a mayor por el primer apellido, segundo apellido y nombre. 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. 3. Devuelve el listado de los alumnos q que ue nacieron en 1999. 4. Devuelve el listado listado de profesores profesores que no han dado de alta su número de teléfono en la base de datos y además su nif termina en K. 5. Devuelve el listado de las asignaturas asignaturas que se imparten en el primer cuatrim cuatrimestre, estre, en el tercer curso del grado que tiene el identificador 7.

1.5.5 Consul sulta tass mul multit titabl ablaa (Co (Compo mposic sición ión int intern erna) a) 1.5.5 Con 1. Devuelve un listado con los datos de todas las alumnas que se han matriculado alguna vez en el  Grado en Ingen Ingenier ierí ía Inf Inform ormá ática   (Plan   2015). 2. Devuelv Devuelvee un lista listado do con to todas das las asi asigna gnatur turas as ofert ofertada adass en el Gra Grado do en Ing Ingeni enier erí ía Inf Inform ormá ática   ( Plan   2015). 3. Devuelve un listado de los profesores junto junto con el nombre del depart departamento amento al que están vinculados. El listado debe devolver cuatro columnas, primer apellido, segundo apellido, nombre y nombre del departamen tamento to.. El result resultado ado estar estará á ordenad ordenado o alf alfabé abétic ticame amente nte de meno menorr a mayor mayor por los ape apelli llidos dos y el nombre nombre.. 4. Devuelve un listado listado con el nombre de las asignatura asignaturas, s, año de inicio y año de fin del curso escolar escolar del 26902806M M. alumno con nif 26902806 5. Devuelve un listado con el nombre de todos los depart departamentos amentos que tienen profesores que imparten alguna asignatura en el Gra Grado do en Ing Ingeni enier erí ía Inf Inform ormá ática   (Plan   2015).

6. Devuelv Devuelvee un lista listado do con to todos dos los alumno alumnoss que se han mat matricu riculad lado o en algu alguna na asi asigna gnatur tura a dur durant antee el curso curso escolar 2018/2019.

1.5. 1.5.6 6 Con Consul sulta tass mul multit titabl ablaa (Co (Compo mposic sición ión ex exte terna rna)) Resuelva todas las consultas utilizando las cláusulas LEFT LEFT JOI JOIN N y RIGHT RIGHT JOI JOIN N. 1. Devue Devuelv lvee un li list stad ado o co con n lo loss nombr nombres es de todos los profes profesore oress y los depart departame amento ntoss que tienen tienen vincul vinculado ados. s. 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

José Juan Sánchez Hernández

32

 

Ejercicios. Realización de consultas S QL QL

IES Celia Viñas (Almería) - 2019/2020

nombre del profes nombre profesor or.. El result resultado ado estar estará á ordenad ordenado o alf alfabé abétic ticame ament ntee de men menor or a mayor mayor por el nombre nombre del departamento, apellidos y el nombre. 2. Devuelve un listado con los profesores que no est están án asociados a un departamento. 3. Devuelve un listado con los departamentos que no tienen profesores asociados. asociados. 4. Devuelve un listado con los profesores que no imparten imparten ninguna asignatura. asignatura. 5. Devuelve un listado con las asignaturas que no tienen un profesor asignado. 6. Devuelve un listado con todos los departamentos departamentos que tienen alguna asignatura que no se haya imparimpartido 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.

1.5. 1.5.77 Con Consul sulta tass res resume umen n 1. Devuelve el número total de alumnas que hay. 2. Calcula cuántos alumnos nacieron en 1999. 3. Calculacuánt Calculacuántos os profes profesore oress hayen cada cada depart departame amento nto.. El result resultadosólo adosólo debe debe mostr mostrar ar doscolum doscolumnas nas,, una con el nombre del departamento y otra con el número de profesores que hay en ese departamento. El result res ultado ado sól sólo o debe inclui incluirr los depart departame amento ntoss que tienen tienen profes profesore oress asocia asociados dos y deb deberá erá estar estar ordenad ordenado o de mayor a menor por el número de profesores. 4. Devue Devuelv lvee un li list stad ado o co con n to todo doss lo loss depart departam ament entos os y el nú núme mero ro de prof profes esor ores es qu quee hay hay en cada cada uno uno de ell ellos os.. Tenga en cuenta que pueden existir departamentos que no tienen profesores asociados. Estos departamentos también tienen que aparecer en el listado. 5. Devuelve un listado listado con el nombre de todos los grados exist existentes entes en la base de datos y el número de asignaturas que tiene cada uno. Tenga en cuenta que pueden existir grados que no tienen asignaturas asociadas. Estos grados también tienen que aparecer en el listado. El resultado deberá estar ordenado de mayor a menor por el número de asignaturas. 6. Devuelve un listado listado con el nombre de todos los grados exist existentes entes en la base de datos y el número de asignaturas que tiene cada uno, de los grados que tengan más de 40 asignaturas asociadas. 7. Devue Devuelv lvee un li list stad ado o qu quee mues muestr tree el no nomb mbre re de lo loss gr grad ados os y la suma suma de dell nú núme mero ro tota totall de créd crédit itos os qu quee hay hay para par a cada cada tipo tipo de asi asigna gnatur tura. a. El res result ultadodebe adodebe tener tener tre tress column columnas:nombr as:nombree delgrado, delgrado, tipo tipo de asi asigna gnatur tura a 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. 8. Devuelv Devuelvee un lista listado do que muest muestre re cuánto cuántoss alumnos alumnos se han matricu matriculad lado o de alg alguna una asi asigna gnatur tura a en cada cada uno de lo loss cu curs rsos os esco escola lare res. s. El re resu sult ltad ado o deber deberá á most mostra rarr do doss co colum lumnas nas,, una una co colu lumn mna a co con n el año año de in inic icio io de dell curso escolar y otra con el número de alumnos matriculados. 9. Devuelve un listado con el número de asignaturas que imparte imparte cada profesor profesor.. El listado debe tener en cuenta aquellos profesores que no imparten ninguna asignatura. El resultado mostrará mostrará cinco columnas: id, nombre nombre,, pri primer mer apelli apellido, do, segund segundo o apelli apellido do y número número de asi asigna gnatur turas. as. El result resultado ado est estar ará á ordena ordenado do de mayor a menor por el número de asignaturas.

José Juan Sánchez Hernández

33

 

Ejercicios. Realización de consultas S QL QL

IES Celia Viñas (Almería) - 2019/2020

1.5.8 Subco consu nsult ltas as 1.5.8 Sub 1. Devuelve todos los datos datos del alumno más joven. 2. Devuelve un listado con los profesores que no est están án asociados a un departamento. 3. Devuelve un listado con los departamentos que no tienen profesores asociados. asociados. 4. Devuelv Devuelvee un lista listado do con los profes profesore oress que tienen tienen un depart departame amento nto aso asocia ciado do y que no impart imparten en nin ningun guna a asignatura. 5. Devuelve un listado con las asignaturas que no tienen un profesor asignado. 6. Devuelve un listado listado con todos todos los departame departamentos ntos que no han impartido impartido asignaturas asignaturas en ningún curso escolar.

1.6 Un 1.6 Univ iver ersi sida dad d (T (Tip ipo o B) 1.6.11 Mo 1.6. Model delo o ent entida idad/r d/rela elació ción n

1.6. 1. 6.22 Ba Base se de da dattos pa parra My MySQ SQLL

José Juan Sánchez Hernández

34

 

Ejercicios. Realización de consultas S QL QL

IES Celia Viñas (Almería) - 2019/2020

DROP   DATABASE DATABASE IF   EXISTS   universidad; universidad;

universida rsidad d   CHARACTER utf8mb4; CREATE   DATABASE unive CHARACTER SET   utf8mb4; USE unive universida rsidad d; CREATE TABLE   departamento   ( CREATE PRIMARY KEY, id   INT   UNSIGNED UNSIGNED AUTO_INCREMENT   PRIMARY nombre   VARCHAR(50)   NOT NUL NULL L

); CREATE E TABLE   alumno   ( CREAT

id   INT   UNSIGNED UNSIGNED AUTO_INCREMENT   PRIMARY PRIMARY KEY, nif   VARCHAR(9)   UNIQUE, nombre   VARCHAR(25)   NOT NUL NULL L, apellido1   VARCHAR(50)   NOT NUL NULL L, apellido2   VARCHAR(50), ciudad   VARCHAR(25)   NOT NUL NULL L, NULL L, direccion   VARCHAR(50)   NOT NUL telefono   VARCHAR(9), fecha_nacimiento   DATE DATE NO NOT T NU NULL LL, NULL L sexo o ENU ENUM M('H' 'H', ,   'M' 'M') )   NOT NUL sex

); CREATE E TABLE   profesor   ( CREAT

id   INT   UNSIGNED UNSIGNED AUTO_INCREMENT   PRIMARY PRIMARY KEY, nif   VARCHAR(9)   UNIQUE, NULL L, nombre   VARCHAR(25)   NOT NUL apellido1   VARCHAR(50)   NOT NUL NULL L, apellido2   VARCHAR(50), ciudad   VARCHAR(25)   NOT NUL NULL L, NULL L, direccion   VARCHAR(50)   NOT NUL telefono   VARCHAR(9), fecha_nacimiento   DATE DATE NO NOT T NU NULL LL, sexo o ENU ENUM M('H' 'H', ,   'M' 'M') )   NOT NUL NULL L, sex NULL L, id_departamento   INT   UNSIGNED   NOT NUL FOREIGN id_departamento)   REFERENCE REFERENCES S departamento departamento( (id id) ) FOREIGN KEY   (id_departamento)

); CREATE E TABLE   grado   ( CREAT

id   INT   UNSIGNED UNSIGNED AUTO_INCREMENT   PRIMARY PRIMARY KEY, nombre   VARCHAR(100)   NOT NUL NULL L ); CREATE E TABLE   asignatura   ( CREAT

id   INT   UNSIGNED UNSIGNED AUTO_INCREMENT   PRIMARY PRIMARY KEY, nombre   VARCHAR(100)   NOT NUL NULL L, creditos   FLOAT   UNSIGNED   NOT NUL NULL L, tip tipo o ENU ENUM M('básica' 'básica', ,   'obligatoria', 'obligatoria',   'optativa' 'optativa') )   NOT NUL NULL L, NULL L, UNSIGNED NED   NOT NUL curso TINYINT UNSIG

José Juan Sánchez Hernández

35

 

Ejercicios. Realización de consultas S QL QL

IES Celia Viñas (Almería) - 2019/2020

cuatrimest imestre re TINYI TINYINT NT UNSIG UNSIGNED NED   NOT NUL NULL L, cuatr id_profesor   INT   UNSIGNED, UNSIGNED, id_grado   INT   UNSIGNED   NOT NUL NULL L, FOREI FOREIGN GN KEY(id_profesor) id_profesor)   REFERENCES REFERENCES profe profesor sor( (id), id), FOREI FOREIGN GN KEY(id_grado) id_grado)   REFERENCES REFERENCES grado grado( (id id) ) ); CREAT CREATE E TABLE   curso_escolar   (

UNSIGNED AUTO_INCREMENT   PRIMARY PRIMARY KEY, id   INT   UNSIGNED anyo_inicio   YEAR YEAR NO NOT T NU NULL LL, anyo_fin   YEAR YEAR NO NOT T NU NULL LL ); CREATE CREAT E TABLE   alumno_se_matricula_asignatura   ( NULL L, id_alumno   INT   UNSIGNED   NOT NUL id_asignatura   INT   UNSIGNED   NOT NUL NULL L, NULL L, id_curso_escolar   INT   UNSIGNED   NOT NUL PRIMA PRIMARY RY KEY   (id_alumno, id_alumno,   id_asignatura id_asignatura, ,   id_curso_escolar), id_curso_escolar), id_alumno)   REFEREN REFERENCES CES alumn alumno o(id id), ), FOREIGN GN KEY   (id_alumno) FOREI FOREIGN KEY   (id_asignatura) FOREIGN id_asignatura)   REFERENCES REFERENCES asignatura asignatura( (id id), ), FOREIGN GN KEY   (id_curso_escolar) id_curso_escolar)   REFERENCES REFERENCES curso_escolar curso_escolar( (id id) ) FOREI

);

1.6.3 .3 Da Dato toss 1.6 Acceder al script  SQL  SQL para la creación de la base de datos y la inserción de datos: universidad_b.sql.

1.77 Em Empl ploy oyee eess 1. La base de datos Employees está disponible en la página web página web oficial de MySQL. MySQL . Se trata de una base de datos creada por Pa Patrick trick Crews y Gius Giuseppe eppe Maxia.

José Juan Sánchez Hernández

36

 

Ejercicios. Realización de consultas S QL QL

IES Celia Viñas (Almería) - 2019/2020

1.7.1 Modelo lo entid entidad/r ad/relaci elación ón 1.7.1 Mode

1.77.2 Ba 1. Base se de da dattos pa parra My MySQ SQLL La base de datos está datos está disponible en GitHub GitHub..

1. 1.88 Sak akil ilaa La base de datos  Sakila  está disponible en la página web página  web oficial de MySQL. MySQL. Se trata de una base de datos creada por Mik Mikee Hillyers Hillyers.

José Juan Sánchez Hernández

37

 

Ejercicios. Realización de consultas S QL QL

IES Celia Viñas (Almería) - 2019/2020

1.8.1 Model delo o ent entida idad/r d/rela elació ción n 1.8.1 Mo

1.8. 1. 8.22 Ba Base se de da dattos pa parra My MySQ SQLL La base de datos está datos está disponible en la web oficial de MySQL MySQL..

1.9 9 Sa Saki kila la (E (En n Es Esp pañ añol ol)) 1. Se trata de la base de datos  Sakila creada por  Mike Hillyers, con los nombres de las tablas y columnas en español.

José Juan Sánchez Hernández

38

 

Ejercicios. Realización de consultas S QL QL

IES Celia Viñas (Almería) - 2019/2020

1.9.1 Mo 1.9.1 Model delo o ent entida idad/r d/rela elació ción n

1.9. 1. 9.22 Ba Base se de da dattos pa parra My MySQ SQLL •   Esquema Esquema.. •   Datos. Datos.

José Juan Sánchez Hernández

39

 

Ca Capí pítu tulo lo 2

SQLL Pl SQ Play aygr grou ound nd Puedes practicar todas las consultas que aparecen en e n esta web en SQL en  SQL Playground: Playground: http://sql-playground.com.. •   http://sql-playground.com SQL Playgr Playground ound es un recurs recurso o educati educativo vo diseñad diseñado o para para aprend aprender er a realiz realizar ar consul consulta tass SQL. SQL. La ver versió sión n act actual ual del proyecto utiliza el SGBD MySQL. El proyec proyecto to fue desarr desarrolla ollado do para para el alumna alumnado do de los módulo móduloss Ges Gestió tión n de Bas Bases es de Da Dato toss y Bas Bases es de Dat Datos os de los CFGS del IES Celia Celia Viñas Viñas (Almer (Almería) ía) durante el curs curso o 2017/2018 2017/2018.

40

 

Capí Ca pítu tulo lo 3

Referencias •  Wikibook SQL Exercises Exercises.. Tutorial al SQL de w3resource. w3resource. •   Tutori •  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 Databases.. Chua Hock-Chuan. Playground.. •  SQL Playground

41

 

Capí pítu tulo lo 4 Ca

Licencia El con conten tenido ido de esta esta web es está tá bajo bajo una lic licenci encia a de Creati Creative ve Common Commonss Rec Recono onocim cimien ientoto-NoC NoCome omerci rcialalCompartirIgual 4.0 Internacional.

42

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF