0% encontró este documento útil (0 votos)
47 vistas9 páginas

Consultas SQL para Tienda de Informática

Cargado por

r01124b
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
47 vistas9 páginas

Consultas SQL para Tienda de Informática

Cargado por

r01124b
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Universidad Peruana Los Andes

Facultad de Ingeniería

Escuela Profesional de Ingeniería de Sistemas y Computación

2024
Capítulo 1

Realización de consultas SQL

1.1 Modelo: Tienda de informática

1.1.1 Modelo entidad/relación

1.1.2 Base de datos para Microsoft SQL Server

DROP DATABASE IF EXISTS tienda


CREATE DATABASE tienda CHARACTER SET utf8mb4;
USE tienda

CREATE TABLE fabricante (


id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(100) NOT NULL
)

CREATE TABLE producto (


id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,

Ing. Raúl Fernández Bejarano 4


Ejercicios. Realización de consultas SQL

nombre VARCHAR(100) NOT NULL,


precio DOUBLE NOT NULL,
id_fabricante INT UNSIGNED NOT NULL,
FOREIGN KEY (id_fabricante) REFERENCES fabricante(id)
)

INSERT INTO fabricante VALUES(1, 'Asus')


INSERT INTO fabricante VALUES(2, 'Lenovo')
INSERT INTO fabricante VALUES(3, 'Hewlett-Packard')
INSERT INTO fabricante VALUES(4, 'Samsung')
INSERT INTO fabricante VALUES(5, 'Seagate')
INSERT INTO fabricante VALUES(6, 'Crucial')
INSERT INTO fabricante VALUES(7, 'Gigabyte')
INSERT INTO fabricante VALUES(8, 'Huawei')
INSERT INTO fabricante VALUES(9, 'Xiaomi')

INSERT INTO producto VALUES(1, 'Disco duro SATA3 1TB', 86.99, 5)


INSERT INTO producto VALUES(2, 'Me moria RAM DDR4 8GB', 120, 6)
INSERT INTO producto VALUES(3, 'Disco SSD 1 TB', 150.99, 4)
INSERT INTO producto VALUES(4, 'Ge Force GTX 1050Ti', 185, 7)
INSERT INTO producto VALUES(5, 'Ge Force GTX 1080 Xtre me ', 755, 6)
INSERT INTO producto VALUES(6, 'Monitor 24 LED Full HD', 202, 1)
INSERT INTO producto VALUES(7, 'Monitor 27 LED Full HD', 245.99, 1)
INSERT INTO producto VALUES(8, 'Portátil Yoga 520', 559, 2)
INSERT INTO producto VALUES(9, 'Portátil Ideapd 320', 444, 2);
INSERT INTO producto VALUES(10, 'Impre sora HP De skje t 3720', 59.99, 3)
INSERT INTO producto VALUES(11, 'Impre sora HP Lase rje t Pro M26nw', 180, 3)

1.1.3 Consultas sobre una tabla

1. Lista el nombre de todos los productos que hay en la tabla producto.

2. Lista los nombres y los precios de todos los productos de la tabla producto.

3. Lista todas las columnas de la tabla producto.

4. Lista el nombre de los productos, el precio en euros y el precio en dólares estadounidenses (USD).

5. Lista el nombre de los productos, el precio en euros y el precio en dólares estadounidenses (USD). Utiliza
los siguientes alias para las columnas: nombre de producto, euros, dólares.

6. Lista los nombres y los precios de todos los productos de la tabla producto, convirtiendo los nombres a
mayúscula.

7. Lista los nombres y los precios de todos los productos de la tabla producto, convirtiendo los nombres a
minúscula.

8. Lista el nombre de todos los fabricantes en una columna, y en otra columna obtenga en mayúsculas los
dos primeros caracteres del nombre del fabricante.

Ing. Raúl Fernández Bejarano 5


Ejercicios. Realización de consultas SQL

9. Lista los nombres y los precios de todos los productos de la tabla producto, redondeando el valor del
precio.

10. Lista los nombres y los precios de todos los productos de la tabla producto, truncando el valor del precio
para mostrarlo sin ninguna cifra decimal.

11. Lista el identificador de los fabricantes que tienen productos en la tabla producto.

12. Lista el identificador de los fabricantes que tienen productos en la tabla producto, eliminando los iden-
tificadores que aparecen repetidos.

13. Lista los nombres de los fabricantes ordenados de forma ascendente.

14. Lista los nombres de los fabricantes ordenados de forma descendente.

15. Lista los nombres de los productos ordenados en primer lugar por el nombre de forma ascendente y en
segundo lugar por el precio de forma descendente.

16. Devuelve una lista con las 5 primeras filas de la tabla fabricante.

17. Devuelve una lista con 2 filas a partir de la cuarta fila de la tabla fabricante. La cuarta fila también se
debe incluir en la respuesta.

18. Lista el nombre y el precio del producto más barato. (Utilice solamente las cláusulas ORDER BY y LIMIT)

19. Lista el nombre y el precio del producto más caro. (Utilice solamente las cláusulas ORDER BY y LIMIT)

20. Lista el nombre de todos los productos del fabricante cuyo identificador de fabricante es igual a 2.

21. Lista el nombre de los productos que tienen un precio menor o igual a 120€.

22. Lista el nombre de los productos que tienen un precio mayor o igual a 400€.

23. Lista el nombre de los productos que no tienen un precio mayor o igual a 400€.

24. Lista todos los productos que tengan un precio entre 80€ y 300€. Sin utilizar el operador BETWEEN.

25. Lista todos los productos que tengan un precio entre 60€ y 200€. Utilizando el operador BETWEEN.

26. Lista todos los productos que tengan un precio mayor que 200€ y que el identificador de fabricante sea
igual a 6.

27. Lista todos los productos donde el identificador de fabricante sea 1, 3 o 5. Sin utilizar el operador IN.

28. Lista todos los productos donde el identificador de fabricante sea 1, 3 o 5. Utilizando el operador IN.

29. Lista el nombre y el precio de los productos en céntimos (Habrá que multiplicar por 100 el valor del precio).
Cree un alias para la columna que contiene el precio que se llame céntimos.

30. Lista los nombres de los fabricantes cuyo nombre empiece por la letra S.

31. Lista los nombres de los fabricantes cuyo nombre termine por la vocal e.

32. Lista los nombres de los fabricantes cuyo nombre contenga el carácter w.

33. Lista los nombres de los fabricantes cuyo nombre sea de 4 caracteres.

34. Devuelve una lista con el nombre de todos los productos que contienen la cadena Portátil en el nom-
bre.

Ing. Raúl Fernández Bejarano 6


Ejercicios. Realización de consultas SQL

35. Devuelve una lista con el nombre de todos los productos que contienen la cadena Monitor en el nombre
y tienen un precio inferior a 215 €.

36. Lista el nombre y el precio de todos los productos que tengan un precio mayor o igual a 180€. Ordene
el resultado en primer lugar por el precio (en orden descendente) y en segundo lugar por el nombre (en
orden ascendente).

1.1.4 Consultas multitabla (Composición interna)

Resuelva todas las consultas utilizando la sintaxis de SQL1 y SQL2.

1. Devuelve una lista con el nombre del producto, precio y nombre de fabricante de todos los productos de
la base de datos.

2. Devuelve una lista con el nombre del producto, precio y nombre de fabricante de todos los productos de
la base de datos. Ordene el resultado por el nombre del fabricante, por orden alfabético.

3. Devuelve una lista con el identificador del producto, nombre del producto, identificador 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.

5. Devuelve el nombre del producto, su precio y el nombre de su fabricante, del producto más caro.

6. Devuelve una lista de todos los productos del fabricante Lenovo.

7. Devuelve una lista de todos los productos del fabricante Crucial que tengan un precio mayor que 200€.

8. Devuelve un listado con todos los productos de los fabricantes Asus, Hewlett-Packardy Seagate. Sin
utilizar el operador IN.

9. Devuelve un listado con todos los productos de los fabricantes Asus, Hewlett-Packardy Seagate. Uti-
lizando el operador IN.

10. Devuelve un listado con el nombre y el precio de todos los productos de los fabricantes cuyo nombre
termine por la vocal e.

11. Devuelve un listado con el nombre y el precio de todos los productos cuyo nombre de fabricante contenga
el carácter w en su nombre.

12. Devuelve un listado con el nombre de producto, precio y nombre de fabricante, 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)

13. Devuelve un listado con el identificador y el nombre de fabricante, solamente de aquellos fabricantes que
tienen productos asociados en la base de datos.

1.1.5 Consultas multitabla (Composición externa)

Resuelva todas las consultas utilizando las cláusulas LEFT JOIN y RIGHT JOIN.

Ing. Raúl Fernández Bejarano 7


Ejercicios. Realización de consultas SQL

1. Devuelve un listado de todos los fabricantes que existen en la base de datos, junto con los productos que
tiene cada uno de ellos. El listado deberá mostrar también aquellos fabricantes que no tienen productos
asociados.

2. Devuelve un listado donde sólo aparezcan aquellos fabricantes que no tienen ningún producto asociado.

3. ¿Pueden existir productos que no estén relacionados con un fabricante? Justifique su respuesta.

1.1.6 Consultas resumen

1. Calcula el número total de productos que hay en la tabla productos.

2. Calcula el número total de fabricantes que hay en la tabla fabricante.

3. Calcula el número de valores distintos de identificador de fabricante aparecen en la tabla productos.

4. Calcula la media del precio de todos los productos.

5. Calcula el precio más barato de todos los productos.

6. Calcula el precio más caro de todos los productos.

7. Lista el nombre y el precio del producto más barato.

8. Lista el nombre y el precio del producto más caro.

9. Calcula la suma de los precios de todos los productos.

10. Calcula el número de productos que tiene el fabricante Asus.

11. Calcula la media del precio de todos los productos del fabricante Asus.

12. Calcula el precio más barato de todos los productos del fabricante Asus.

13. Calcula el precio más caro de todos los productos del fabricante Asus.

14. Calcula la suma de todos los productos del fabricante Asus.

15. Muestra el precio máximo, precio mínimo, precio medio y el número total de productos que tiene el fa-
bricante Crucial.

16. Muestra el número total de productos que tiene cada uno de los fabricantes. El listado también debe
incluir los fabricantes que no tienen ningún producto. El resultado mostrará dos columnas, una con el
nombre del fabricante y otra con el número de productos que tiene. Ordene el resultado descendente-
mente por el número de productos.

17. Muestra el precio máximo, precio mínimo y precio medio de los productos de cada uno de los fabricantes.
El resultado mostrará el nombre del fabricante junto con los datos que se solicitan.

18. Muestra el precio máximo, precio mínimo, precio medio y el número total de productos de los fabricantes
que tienen un precio medio superior a 200€. No es necesario mostrar el nombre del fabricante, con el
identificador del fabricante es suficiente.

19. Muestra el nombre de cada fabricante, junto con el precio máximo, precio mínimo, precio medio y el
número total de productos de los fabricantes que tienen un precio medio superior a 200€. Es necesario
mostrar el nombre del fabricante.

Ing. Raúl Fernández Bejarano 8


Ejercicios. Realización de consultas SQL

20. Calcula el número de productos que tienen un precio mayor o igual a 180€.

21. Calcula el número de productos que tiene cada fabricante con un precio mayor o igual a 180€.

22. Lista el precio medio los productos de cada fabricante, mostrando solamente el identificador del fabri-
cante.

23. Lista el precio medio los productos de cada fabricante, mostrando solamente el nombre del fabricante.

24. Lista los nombres de los fabricantes cuyos productos tienen un precio medio mayor o igual a 150€.

25. Devuelve un listado con los nombres de los fabricantes que tienen 2 o más productos.

26. Devuelve un listado con los nombres de los fabricantes y el número de productos que tiene cada uno con
un precio superior o igual a 220 €. No es necesario mostrar el nombre de los fabricantes que no tienen
productos que cumplan la condición.

Ejemplo del resultado esperado:

nombre total

Lenovo 2

Asus 1

Crucial 1

27. Devuelve un listado con los nombres de los fabricantes y el número de productos que tiene cada uno con
un precio superior o igual a 220 €. El listado debe mostrar el nombre de todos los fabricantes, es decir, si
hay algún fabricante que no tiene productos con un precio superior o igual a 220€ deberá aparecer en el
listado con un valor igual a 0 en el número de productos.

Ejemplo del resultado esperado:

nombre total

Lenovo 2

Crucial 1

Asus 1

Huawei 0

Samsung 0

Gigabyte 0

Hewlett-Packard 0

Xiaomi 0

Seagate 0

28. Devuelve un listado con los nombres de los fabricantes donde la suma del precio de todos sus productos

Ing. Raúl Fernández Bejarano 9


Ejercicios. Realización de consultas SQL

es superior a 1000 €.

29. Devuelve un listado con el nombre del producto más caro que tiene cada fabricante. El resultado debe
tener tres columnas: nombre del producto, precio y nombre del fabricante. El resultado tiene que estar
ordenado alfabéticamente de menor a mayor por el nombre del fabricante.

1.1.7 Subconsultas (En la cláusula WHERE)

1.1.7.1 Con operadores básicos de comparación

1. Devuelve todos los productos del fabricante Lenovo. (Sin utilizar INNER JOIN).

2. Devuelve todos los datos de los productos que tienen el mismo precio que el producto más caro del fa-
bricante Lenovo. (Sin utilizar INNER JOIN).

3. Lista el nombre del producto más caro del fabricante Lenovo.

4. Lista el nombre del producto más barato del fabricante Hewlett-Packard.

5. Devuelve todos los productos de la base de datos que tienen un precio mayor o igual al producto más
caro del fabricante Lenovo.

6. Lista todos los productos del fabricante Asus que tienen un precio superior al precio medio de todos sus
productos.

1.1.7.2 Subconsultas con ALL y ANY

8. Devuelve el producto más caro que existe en la tabla producto sin hacer uso de MAX, ORDER BY ni LIMIT.

9. Devuelve el producto más barato que existe en la tabla producto sin hacer uso de MIN, ORDER BY ni
LIMIT.

10. Devuelve los nombres de los fabricantes que tienen productos asociados. (Utilizando ALL o ANY).

11. Devuelve los nombres de los fabricantes que no tienen productos asociados. (Utilizando ALL o ANY).

1.1.7.3 Subconsultas con IN y NOT IN

12. Devuelve los nombres de los fabricantes que tienen productos asociados. (Utilizando IN o NOT IN).

13. Devuelve los nombres de los fabricantes que no tienen productos asociados. (Utilizando IN o NOT IN).

1.1.7.4 Subconsultas con EXISTS y NOT EXISTS

14. Devuelve los nombres de los fabricantes que tienen productos asociados. (Utilizando EXISTS o NOT
EXISTS).

15. Devuelve los nombres de los fabricantes que no tienen productos asociados. (Utilizando EXISTS o NOT
EXISTS).

Ing. Raúl Fernández Bejarano 10

También podría gustarte