Práctica 3 - SQL I
Práctica 3 - SQL I
Bases de datos
Práctica 3 - SQL I
Bases de Datos 2
Índice
Práctica 3: SQL I 1
Práctica 3 - SQL I
Bases de Datos 3
Presentación
La fecha límite de entrega es estricta, para poder optar a la máxima puntuación, los
días consecutivos hasta el tercer día dará la posibilidad de puntuar máximo 7 y hasta
Introducción
1. Instalar virtualbox
version: '3.3'
services:
db:
image: mysql:5.7
Práctica 3 - SQL I
Bases de Datos 6
restart: always
environment:
MYSQL_DATABASE: 'tienda'
# So you don't have to use root, but you can if you like
MYSQL_USER: 'user'
# You can use whatever password you like
MYSQL_PASSWORD: 'password'
# Password for root access
MYSQL_ROOT_PASSWORD: 'password'
ports:
# <Port exposed> : < MySQL Port running inside container>
- '3306:3306'
expose:
# Opens port 3306 on the container
- '3306'
# Where our data will be persisted
volumes:
- my-db:/var/lib/mysql
# Names our volume
volumes:
my-db:
3. Nos vamos desde la línea de comandos cmd y estando en la misma carpeta donde
está el fichero, ponemos docker-compose up -d. Esto nos levantará un docker con la
configuración indicada en el fichero.
4. Tras esto nos vamos a MySql Workbench (si no lo tenemos lo descargamos e
instalamos).
5. Configuramos el acceso a la bbdd con los puertos indicados en el fichero docker-
compose.yml.
Práctica 3 - SQL I
Bases de Datos 7
Práctica 3 - SQL I
Bases de Datos 8
Ejercicios
Tienda de informática
1. Modelo entidad/relación
INSERT INTO producto VALUES(1, 'Disco duro SATA3 1TB', 86.99, 5); INSERT INTO producto
VALUES(2, 'Memoria RAM DDR4 8GB', 120, 6); INSERT INTO producto VALUES(3, 'Disco SSD 1
TB', 150.99, 4); INSERT INTO producto VALUES(4, 'GeForce GTX 1050Ti', 185, 7);
INSERT INTO producto VALUES(5, 'GeForce GTX 1080 Xtreme', 755, 6); INSERT INTO producto
VALUES(6, 'Monitor 24 LED Full HD', 202, 1); INSERT INTO producto VALUES(7, 'Monitor 27
LED Full HD', 245.99, 1);
INSERT INTO producto VALUES(8, 'Portátil Yoga 520', 559, 2);
INSERT INTO producto VALUES(9, 'Portátil Ideapd 320', 444, 2);
INSERT INTO producto VALUES(10, 'Impresora HP Deskjet 3720', 59.99, 3);
INSERT INTO producto VALUES(11, 'Impresora HP Laserjet Pro M26nw', 180, 3);
Práctica 3 - SQL I
Bases de Datos 5
3. Ejercicios
2. Lista los nombres y los precios de todos los productos de la tabla producto.
estadounidenses (USD).
estadounidenses (USD). Utiliza los siguientes alias para las columnas: nombre de
6. Lista los nombres y los precios de todos los productos de la tabla producto,
7. Lista los nombres y los precios de todos los productos de la tabla producto,
obtenga en mayúsculas los dos primeros caracteres del nombre del fabricante.
Práctica 3 - SQL I
Bases de Datos 6
9. Lista los nombres y los precios de todos los productos de la tabla producto,
10. Lista los nombres y los precios de todos los productos de la tabla producto,
truncando el valor del precio para mostrarlo sin ninguna cifra decimal.
11. Lista el código de los fabricantes que tienen productos en la tabla producto.
12. Lista el código de los fabricantes que tienen productos en la tabla producto,
15. Lista los nombres de los productos ordenados en primer lugar por el nombre de
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
18. Lista el nombre y el precio del producto más barato. (Utilice solamente las cláusulas
ORDER BY y LIMIT)
19. Lista el nombre y el precio del producto más caro. (Utilice solamente las cláusulas
ORDER BY y LIMIT)
20. Lista el nombre de todos los productos del fabricante cuyo código de fabricante es
igual a 2.
21. Lista el nombre de los productos que tienen un precio menor o igual a 120€.
Práctica 3 - SQL I
Bases de Datos 7
22. Lista el nombre de los productos que tienen un precio mayor o igual a 400€.
23. Lista el nombre de los productos que no tienen un precio mayor o igual a 400€.
24. Lista todos los productos que tengan un precio entre 80€ y 300€. Sin utilizar el
operador BETWEEN.
25. Lista todos los productos que tengan un precio entre 60€ y 200€. Utilizando el
operador BETWEEN.
26. Lista todos los productos que tengan un precio mayor que 200€ y que el código de
27. Lista todos los productos donde el código de fabricante sea 1, 3 o 5. Sin utilizar el
operador IN.
28. Lista todos los productos donde el código de fabricante sea 1, 3 o 5. Utilizando el
operador IN.
29. Lista el nombre y el precio de los productos en céntimos (Habrá que multiplicar por
100 el valor del precio). Cree un alias para la columna que contiene el precio que se
llame céntimos.
30. Lista los nombres de los fabricantes cuyo nombre empiece por la letra S.
31. Lista los nombres de los fabricantes cuyo nombre termine por la vocal e.
32. Lista los nombres de los fabricantes cuyo nombre contenga el carácter w.
33. Lista los nombres de los fabricantes cuyo nombre sea de 4 caracteres.
34. Devuelve una lista con el nombre de todos los productos que contienen la cadena
Portátil en el nombre.
Práctica 3 - SQL I
Bases de Datos 8
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).