├── 0. Consigna de Ejercicio SQL - Escuela de Música.pdf ├── 0. DEREscuelaMusicaTodoCode.png ├── 1. datos_base.sql ├── 2. resolucion_consultas.sql └── README.md /0. Consigna de Ejercicio SQL - Escuela de Música.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/todocodeacademy/sql_EscMusica/fbef27716c92229a74e03126527655246f75514d/0. Consigna de Ejercicio SQL - Escuela de Música.pdf -------------------------------------------------------------------------------- /0. DEREscuelaMusicaTodoCode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/todocodeacademy/sql_EscMusica/fbef27716c92229a74e03126527655246f75514d/0. DEREscuelaMusicaTodoCode.png -------------------------------------------------------------------------------- /1. datos_base.sql: -------------------------------------------------------------------------------- 1 | -- Este Script fue generado en un ejercicio realizado en vivo en TodoCode (twitch.tv/todocode) 2 | -- www.todocodeacademy.com 3 | -- Todos los derechos reservados 4 | 5 | -- Creates 6 | CREATE TABLE alumnos ( 7 | id_alumno INT PRIMARY KEY, 8 | apellido VARCHAR(50), 9 | nombre VARCHAR(50), 10 | fecha_nac DATE, 11 | direccion VARCHAR(100), 12 | telefono VARCHAR(20), 13 | email VARCHAR(50) 14 | ); 15 | 16 | CREATE TABLE cursos ( 17 | id_curso INT PRIMARY KEY, 18 | nombre VARCHAR(50), 19 | nivel_habilidad VARCHAR(20), 20 | tipo_instrumento VARCHAR(20) 21 | ); 22 | 23 | -- No se incluyen FKs 24 | CREATE TABLE Inscripciones ( 25 | id_inscripcion INT PRIMARY KEY, 26 | fecha_insc DATE, 27 | abono_insc BOOLEAN, 28 | id_alumno INT, 29 | id_curso INT, 30 | ); 31 | 32 | -- INSERTS 33 | 34 | INSERT INTO `alumnos` (`id_alumno`, `apellido`, `nombre`, `fecha_nac`, `direccion`, `telefono`, `email`) VALUES 35 | (1, 'Perez', 'Juan', '1996-06-10', 'Calle Falsa 123', '123456789', 'juan.perez@example.com'), 36 | (2, 'Gonzalez', 'Maria', '1999-03-20', 'Avenida Siempre Viva 742', '987654321', 'maria.gonzalez@example.co'), 37 | (3, 'Lopez', 'Carlos', '1990-11-21', 'Calle Principal 456', '456123789', 'carlos.lopez@example.com'), 38 | (4, 'Martinez', 'Ana', '1991-11-23', 'Calle Secundaria 789', '789123456', 'ana.martinez@example.com'), 39 | (5, 'Fernandez', 'Lucia', '1995-05-04', 'Calle Tercera 321', '321654987', 'lucia.fernandez@example.c'), 40 | (6, 'Sanchez', 'Diego', '2001-12-25', 'Calle Cuarta 654', '654987321', 'diego.sanchez@example.com'); 41 | 42 | 43 | INSERT INTO cursos (id_curso, nombre, nivel_habilidad, tipo_instrumento) VALUES 44 | (1, 'Guitarra Principiante', 'Principiante', 'Guitarra'), 45 | (2, 'Guitarra Intermedio', 'Intermedio', 'Guitarra'), 46 | (3, 'Guitarra Avanzado', 'Avanzado', 'Guitarra'), 47 | (4, 'Piano Principiante', 'Principiante', 'Piano'), 48 | (5, 'Piano Intermedio', 'Intermedio', 'Piano'), 49 | (6, 'Piano Avanzado', 'Avanzado', 'Piano'), 50 | (7, 'Violín Principiante', 'Principiante', 'Violín'), 51 | (8, 'Violín Intermedio', 'Intermedio', 'Violín'), 52 | (9, 'Violín Avanzado', 'Avanzado', 'Violín'); 53 | 54 | 55 | INSERT INTO inscripciones (id_inscripcion, fecha_insc, abono_insc, id_alumno, id_curso) VALUES 56 | (1, '2024-01-05', TRUE, 1, 1), 57 | (2, '2024-01-10', FALSE, 2, 2), 58 | (3, '2024-02-15', TRUE, 3, 3), 59 | (4, '2024-03-20', FALSE, 4, 4), 60 | (5, '2024-04-25', TRUE, 5, 5), 61 | (6, '2024-05-30', FALSE, 6, 6), 62 | (7, '2024-01-15', TRUE, 1, 2), 63 | (8, '2024-02-10', TRUE, 2, 3), 64 | (9, '2024-03-05', FALSE, 3, 1), 65 | (10, '2024-04-01', TRUE, 4, 6), 66 | (11, '2024-05-05', FALSE, 5, 4), 67 | (12, '2024-06-01', TRUE, 6, 9), 68 | (13, '2024-01-20', FALSE, 1, 5), 69 | (14, '2024-02-25', TRUE, 2, 7), 70 | (15, '2024-03-30', FALSE, 3, 8); 71 | -------------------------------------------------------------------------------- /2. resolucion_consultas.sql: -------------------------------------------------------------------------------- 1 | -- Este Script fue generado en un ejercicio realizado en vivo en TodoCode (twitch.tv/todocode) 2 | -- www.todocodeacademy.com 3 | -- Todos los derechos reservados 4 | 5 | -- Consultas 6 | -- Listar todos los alumnos inscriptos en el curso de "Guitarra Intermedio" 7 | --Solución 1 8 | SELECT a.nombre, a.apellido 9 | FROM alumnos a 10 | JOIN inscripciones i ON a.id_alumno = i.id_alumno 11 | JOIN cursos c ON i.id_curso = c.id_curso 12 | WHERE c.nombre = "Guitarra Intermedio"; 13 | 14 | -- Solución 2 15 | SELECT a.nombre, a.apellido 16 | FROM alumnos a, inscripciones i, cursos c 17 | WHERE a.id_alumno = i.id_alumno AND 18 | i.id_curso= c.id_curso AND 19 | c.nombre = "Guitarra Intermedio"; 20 | 21 | -- Mostrar todas las inscripciones realizadas después del 1 de enero de 2024 22 | SELECT * 23 | FROM inscripciones 24 | WHERE fecha_insc > '2024-01-01'; 25 | 26 | -- Contar la cantidad de inscripciones abonadas 27 | SELECT COUNT(*) 28 | FROM inscripciones 29 | WHERE abono_insc = TRUE; 30 | 31 | -- Listar los cursos de nivel avanzado 32 | SELECT * 33 | FROM cursos 34 | WHERE nivel_habilidad = "Avanzado"; 35 | ---- 36 | 37 | -- Listar los nombres y apellidos de los alumnos junto con los nombres de los cursos a los que están inscritos. 38 | SELECT a.nombre, a.apellido, c.nombre 39 | FROM alumnos a 40 | JOIN inscripciones i ON a.id_alumno = i.id_alumno 41 | JOIN cursos c ON i.id_curso = c.id_curso; 42 | 43 | -- Obtener el nombre y apellido de los alumnos que están inscritos en más de un curso. 44 | -- Traer los alumnos 45 | -- Contar la cantidad de cursos en la que está cada alumno inscripto 46 | -- Filtrar los que estén en más de 1 47 | 48 | SELECT nombre, apellido 49 | FROM alumnos 50 | WHERE id_alumno IN ( 51 | SELECT id_alumno 52 | FROM inscripciones 53 | GROUP BY id_alumno 54 | HAVING COUNT(id_curso)>1 55 | ); 56 | 57 | --Mostrar el nombre de cada curso y la cantidad de alumnos inscritos en cada uno. 58 | SELECT c.nombre, COUNT(i.id_alumno) 59 | FROM cursos c 60 | JOIN inscripciones i ON c.id_curso = i.id_curso 61 | GROUP BY c.nombre; 62 | 63 | 64 | -- Listar los alumnos que no han abonado la inscripción. 65 | SELECT a.nombre, a.apellido 66 | FROM alumnos a, inscripciones i 67 | WHERE a.id_alumno= i.id_alumno 68 | AND i.abono_insc = FALSE; 69 | 70 | SELECT a.nombre, a.apellido 71 | FROM alumnos a 72 | JOIN inscripciones i ON a.id_alumno = i.id_alumno 73 | WHERE i.abono_insc = FALSE; 74 | 75 | -- Obtener los nombres de los cursos que tienen al menos un alumno mayor de 20 años inscrito. 76 | SELECT DISTINCT c.nombre 77 | FROM cursos c 78 | JOIN inscripciones i ON c.id_curso = i.id_curso 79 | JOIN alumnos a ON i.id_alumno = a.id_alumno 80 | WHERE DATEDIFF (CURDATE(), a.fecha_nac) / 365 > 20; 81 | 82 | -- Listar el nombre y apellido de los alumnos junto con los nombres de los cursos en los que están inscritos, pero solo para aquellos que se inscribieron en 2024. 83 | SELECT a.nombre, a.apellido, c.nombre 84 | FROM alumnos a 85 | JOIN inscripciones i ON a.id_alumno= i.id_alumno 86 | JOIN cursos c ON i.id_curso = c.id_curso 87 | WHERE YEAR(i.fecha_insc) = 2024; 88 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | # Copyright 3 | 4 | El ejercicio aquí presente y la resolución del mismo es propiedad intelectual de TodoCode [https://www.todocodeacademy.com](https://www.todocodeacademy.com). En caso de utilizar para fines educativos o de otro estilo, por favor hacer la correspondiente mención. 5 | 6 | ![Image](https://todocodeacademy.com/wp-content/uploads/2020/12/cropped-LogoConSombras-sinfondo-166x38.png) 7 | 8 | ## 📖 Descripción 9 | Ejercicio de bases de datos relacionales y consultas SQL desarrollado en vivo en https://twitch.tv/todocode 10 | 11 | ## 📹 Video Explicativo 12 | El video de resolución explicativo lo podés encontrar en: [Ver video explicativo]() 13 | 14 | ## 📝 Consigna 15 | [Descargar Consigna en PDF](https://github.com/todocodeacademy/sql_EscMusica/blob/main/0.%20Consigna%20de%20Ejercicio%20SQL%20-%20Escuela%20de%20M%C3%BAsica.pdf) 16 | 17 | ## Modelado 18 | ![Image](https://github.com/todocodeacademy/sql_EscMusica/blob/main/0.%20DEREscuelaMusicaTodoCode.png) 19 | 20 | ## 👩🏻‍💻👨🏼‍💻 Scripts/consultas para datos iniciales de base de datos 21 | [Descargar script inicial](https://github.com/todocodeacademy/sql_EscMusica/blob/main/1.%20datos_base.sql) 22 | 23 | ## 👩🏻‍💻👨🏼‍💻 Scripts/consultas de resolución 24 | [Descargar resoluciones](https://github.com/todocodeacademy/sql_EscMusica/blob/main/2.%20resolucion_consultas.sql) 25 | --------------------------------------------------------------------------------