0% encontró este documento útil (0 votos)
58 vistas13 páginas

Práctica 3 - SQL I

Este documento presenta una práctica de SQL sobre una base de datos de una tienda de informática. Incluye instrucciones para crear un contenedor Docker con MySQL y una base de datos de ejemplo con tablas de fabricantes y productos. A continuación, proporciona 33 ejercicios de consultas SQL sobre dicha base de datos que involucran seleccionar, filtrar, ordenar y transformar datos.
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 DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
58 vistas13 páginas

Práctica 3 - SQL I

Este documento presenta una práctica de SQL sobre una base de datos de una tienda de informática. Incluye instrucciones para crear un contenedor Docker con MySQL y una base de datos de ejemplo con tablas de fabricantes y productos. A continuación, proporciona 33 ejercicios de consultas SQL sobre dicha base de datos que involucran seleccionar, filtrar, ordenar y transformar datos.
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 DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 13

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

Está práctica puede ser realizada en la aplicación workspace de mysql.

La entrega será mediante el campus virtual en un documento PDF, insertando las el

código en un documento de word/google docs para su posterior pase a PDF

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

pasada una semana se puede entregar con una máximo 5 en la nota.


Práctica 3 - SQL I
Bases de Datos 4

Introducción

Creación de un contenedor Docker con MySQL


Server

1. Instalar virtualbox

2. Descargar la imagen de ubuntu


3. Crear un servidor Linux (ubuntu-server) en tu virtualbox

4. Una vez instalado Ubuntu instalar el paquete docker y docker-compose


a. toma como referencia esta web
$ sudo apt update
$ sudo apt install docker docker-compose
$ sudo usermod -aG docker ${USER}
Práctica 3 - SQL I
Bases de Datos 5

Luego reiniciar la máquina virtual

5. Una vez instalado docker crear un contenedor MySQL


a. Generar un fichero docker-compose.yml para tener un servidor de MySQL
con volúmenes estáticos
b. Configuración del puerto de escucha por defecto 3307 para que podamos
acceder desde nuestro workbench

yml de ejemplo para crear el servidor MySQL


version: '3.3'
services:
db:
image: mysql:5.7
restart: always
environment:
MYSQL_DATABASE: 'db'
# 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:

OTRO OPCIÓN Docker Desktop

1. Instalar Docker Desktop, anteriormente lo hemos descargado.


2. Guardamos un fichero docker-compose.yml con este código.

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

2. Base de datos para MySQL


DROP DATABASE IF EXISTS tienda;
CREATE DATABASE tienda CHARACTER SET utf8mb4;
USE tienda;

CREATE TABLE fabricante (


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

CREATE TABLE producto (


codigo INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,

nombre VARCHAR(100) NOT NULL, precio DOUBLE NOT NULL,


codigo_fabricante INT UNSIGNED NOT NULL,
FOREIGN KEY (codigo_fabricante) REFERENCES fabricante(codigo)
);

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');
Práctica 3 - SQL I
Bases de Datos 9

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

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.
Práctica 3 - SQL I
Bases de Datos 6

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

redondeando el valor del precio.

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

truncando el valor del precio para mostrarlo sin ninguna cifra decimal.

11. Lista el código de los fabricantes que tienen productos en la tabla producto.

12. Lista el código de los fabricantes que tienen productos en la tabla producto,

eliminando los códigos que aparecen repetidos.

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 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

fabricante sea igual a 6.

27. Lista todos los productos donde el código de fabricante sea 1, 3 o 5. Sin utilizar el

operador IN.

28. Lista todos los productos donde el código de fabricante sea 1, 3 o 5. Utilizando el

operador IN.

29. Lista el nombre y el precio de los productos en céntimos (Habrá que multiplicar por

100 el valor del precio). Cree un alias para la columna que contiene el precio que se

llame céntimos.

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

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

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

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

34. Devuelve una lista con el nombre de todos los productos que contienen la cadena

Portátil en el nombre.
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).

También podría gustarte