PARCIAL 2
Taller Parte 1 - Consultas Relacionales
Institución educativa - Retos y análisis
Con la información de la base de datos de la Institución realizar las siguientes consultas:
1. Visualizar los estudiantes con sus acudientes.
Análisis:
- Información solicitada: Mostrar información de los estudiantes con sus acudientes.
- Tablas involucradas: acudiente, estudiante, estuacu.
- Condiciones: ninguna.
- Relación de tablas: acudiente.idacudiente = estuacu.idacudiente and estudiante.idestudiante = estuacu.idestudiante
- Sintaxis: select estudiante.idestudiante, estudiante.nombre 'Estudiante', estudiante.direccion, acudiente.idacudiente, acudiente.nombre 'Acudiente' from acudiente, estudiante, estuacu where acudiente.idacudiente = estuacu.idacudiente and estudiante.idestudiante = estuacu.idestudiante;
2. Que estudiantes no tienen acudiente asignado
Análisis:
- Información solicitada: Mostrar información de los estudiantes.
- Tablas involucradas: estudiante, estuacu.
- Condiciones: sin acudiente asignado.
- Relación de tablas: estudiante.idestudiante = estuacu.idestudiante
- Sintaxis: select estudiante.*, estuacu.idestudiante from estudiante left join estuacu on estudiante.idestudiante = estuacu.idestudiante where estuacu.idestudiante is null;
Nota: todos los estudiantes registrados tienen sus respectivos acudientes.
3. Que acudientes no matricularon sus hijos en la institución.
Análisis:
- Información solicitada: Mostrar información de los acudientes y estudiantes.
- Tablas involucradas: estudiante, estuacu, acudiente, estumat
- Condiciones: estudiantes no matriculados en la institución.
- Relación de tablas: acudiente.idacudiente = estuacu.idacudiente, estuacu.idestudiante = estudiante.idestudiante, estudiante.idestudiante = estumat.idestudiante,
- Sintaxis: select distinct acudiente.idacudiente,
acudiente.nombre 'Acudiente', estudiante.idestudiante, estudiante.nombre 'Estudiante',
estumat.idestudiante from Acudiente
inner join estuacu on acudiente.idacudiente = estuacu.idacudiente
inner join estudiante on estuacu.idestudiante = estudiante.idestudiante
left join estumat on estudiante.idestudiante = estumat.idestudiante
where estumat.idestudiante is null;
Nota: Se indican los acudientes que no han matriculado al estudiante.
4.Visualizar las materias que matriculó el estudiante 00001
Análisis:
- Información solicitada: Mostrar información de materias matriculadas.
- Tablas involucradas: materia, estumat.
- Condiciones: idestudiante = 0001.
- Relación de tablas: materia.codigomat = estumat.codigomat
- Sintaxis: select materia.codigomat, materia.nombre
'Materia', estumat.idestudiante from materia
inner join estumat on materia.codigomat= estumat.codigomat
where estumat.idestudiante = '00001';
5. Visualizar los estudiantes con las materias que matricularon.
Análisis:
- Información solicitada: Mostrar información de los estudiantes con sus materias.
- Tablas involucradas: materia, estumat, estudiante.
- Condiciones: ninguna
- Relación de tablas: estudiante.idestudiante = estumat.idestudiante, estumat.codigomat = materia.codigomat
- Sintaxis: select distinct estudiante.idestudiante, estudiante.nombre 'Estudiante', materia.nombre 'Materia' from estudiante
inner join estumat on estudiante.idestudiante = estumat.idestudiante
inner join materia on estumat.codigomat= materia.codigomat
order by estudiante.idestudiante;
6. Visualizar un listado de los estudiantes que no se han matriculado
Análisis:
- Información solicitada: Mostrar información de estudiantes.
- Tablas involucradas: estumat, estudiante.
- Condiciones: Estudiantes que no se han matriculado.
- Relación de tablas: estudiante.idestudiante = estumat.idestudiante.
- Sintaxis: select distinct estudiante.idestudiante, estudiante.nombre 'Estudiante', estumat.idestudiante 'Materias' from estudiante
Left join estumat on estudiante.idestudiante = estumat.idestudiante where estumat.idestudiante is null;
7. Visualizar un listado de las materias a las que ningún estudiante se matriculó.
Análisis:
- Información solicitada: Mostrar información de Materias.
- Tablas involucradas: estumat, materia.
- Condiciones: Materias que ninguno ha matriculado.
- Relación de tablas: materia.codigomat = estumat.codigomat
- Sintaxis: select distinct materia.codigomat, materia.nombre 'Materia', estumat.codigomat from materia
left join estumat on materia.codigomat = estumat.codigomat where estumat.codigomat is null;
Nota: La consulta arroja resultado vacío ya que todas las materias las matricularon.
8. Visualizar los docentes con las materias que dictan.
Análisis:
- Información solicitada: Mostrar información de los profesores y materias.
- Tablas involucradas: materia, matprofe, profesor.
- Condiciones: ninguna
- Relación de tablas: profesor.idprofesor= matprofe.idprofesor, matprofe.codigomat = materia.codigomat
- Sintaxis: select distinct profesor.idprofesor, profesor.nombre 'Profesor', materia.nombre 'Materia' from profesor
inner join matprofe on profesor.idprofesor = matprofe.idprofesor
inner join materia on matprofe.codigomat= materia.codigomat
order by profesor.idprofesor;
9. Visualizar las materias que no tienen docente asignado.
Análisis:
- Información solicitada: Mostrar información de las materias.
- Tablas involucradas: materia, matprofe.
- Condiciones: Materias sin docente asignado.
- Relación de tablas: materia.codigomat= matprofe.codigomat
- Sintaxis: select distinct materia.codigomat, materia.nombre 'Materia', matprofe.codigomat 'Docente' from materia
left join matprofe on materia.codigomat = matprofe.codigomat where matprofe.codigomat is null;
Nota: La consulta arroja resultado vacío ya que todas las materias tienen docente asignado.
10. Visualizar que docentes no tienen materias asignadas.
Análisis:
- Información solicitada: Mostrar información de las docentes.
- Tablas involucradas: profesor, matprofe.
- Condiciones: Docentes sin materias asignadas.
- Relación de tablas: profesor.idprofesor= matprofe.idprofesor
- Sintaxis: select distinct profesor.idprofesor, profesor.nombre 'Docente', matprofe.idprofesor from Profesor
left join matprofe on profesor.idprofesor= matprofe.idprofesor where matprofe.idprofesor is null;
Nota: La consulta arroja resultado vacío ya que todas las materias tienen docente asignado.
11. Visualizar el estudiante con las materias que tiene matriculadas y que docentes las dicta.
Análisis:
- Información solicitada: Mostrar información de los estudiantes con sus materias y docentes.
- Tablas involucradas: estudiante, estumat, materia, matprofe, profesor
- Condiciones: ninguna
- Relación de tablas: estudiante.idestudiante = estumat.idestudiante, estumat.codigomat = materia.codigomat, materia.codigomat = matprofe.codigomat, matprofe.idprofesor = profesor.idprofesor
- Sintaxis: select distinct estudiante.idestudiante,
estudiante.nombre 'Estudiante', materia.codigomat, materia.nombre 'Materia',
profesor.idprofesor, profesor.nombre 'Docente', from estudiante
inner join estumat on estudiante.idestudiante = estumat.idestudiante
inner join materia on estumat.codigomat = materia.codigomat
inner join matprofe on materia.codigomat = matprofe.codigomat
inner join profesor on matprofe.idprofesor = profesor.idprofesor
order by estudiante.idestudiante, materia.codigomat;
fin
Taller Parte 2 - Matrícula
Matrícula - Retos y Análisis
1. Que profesores dictan en la carrera de ingeniería de sistemas.
Análisis:
- Información solicitada: Mostrar información de los profesores.
- Tablas involucradas: profesor, profcar, carrera.
- Condiciones: Carrera = ingeniería de sistemas.
- Relación de tablas: profesor.codprofe = profcar.codprofe, profcar.codcarre= carrera.codcarre.
- Sintaxis: select distinct profesor.codprofe, profesor.nombre 'Profesor', carrera.codcarre, carrera.carrera 'Carrera' from profesor inner join profcar on profesor.codprofe = profcar.codprofe inner join carrera on profcar.codcarre= carrera.codcarre where carrera.carrera ='Ingenieria de Sistemas';
2. Que alumnos están matriculados en la carrera de Derecho y cuales profesores dictan en esa carrera.
Análisis:
- Información solicitada: Información de alumnos y profesores.
- Tablas involucradas: alumno, matricula, profesor, profcar, carrera
- Condiciones: Alumnos matriculados en Derecho.
- Relación de tablas: alumno.codestu = matricula.codestu, matricula.codprofe = profesor.codprofe, profesor.codprofe = profcar.codprofe, profcar.codcarre = carrera.codcarre
- Sintaxis: select distinct alumno.codestu, alumno.nombre
'Alumno', carrera.codcarre, carrera.carrera, profesor.codprofe, profesor.nombre
'Profesor' from alumno
inner join matricula on alumno.codestu = matricula.codestu
inner join profesor on matricula.codprofe = profesor.codprofe
inner join profcar on profesor.codprofe = profcar.codprofe
inner join carrera on profcar.codcarre = carrera.codcarre
where carrera.carrera = 'Derecho';
3. Cuánto les costó el semestre de los alumnos que se matricularon en Veterinaria.
Análisis:
- Información solicitada: Valores de semestre.
- Tablas involucradas: matricula, carrera
- Condiciones: Alumnos matriculados en veterinaria.
- Relación de tablas: matricula.codcarre = carrera.codcarre
- Sintaxis: select distinct matricula.codmatri, matricula.codestu, matricula.valorsemestre 'Costo Semestre', carrera.codcarre, carrera.carrera from matricula
inner join carrera on matricula.codcarre= carrera.codcarre
where carrera.carrera = 'Veterinaria';
4. A que alumnos les tocaría ver clases con el profesor Portacio Cartagena.
Análisis:
- Información solicitada: Información de alumnos y profesor.
- Tablas involucradas: alumno, matricula, profesor.
- Condiciones: Alumnos que ven clases con el profesor Portacio Cartagena.
- Relación de tablas: alumno.codestu = matricula.codestu, matricula.codprofe = profesor.codprofe.
- Sintaxis: select distinct alumno.codestu, alumno.nombre 'Alumno', profesor.nombre 'Profesor' from alumno
inner join matricula on alumno.codestu = matricula.codestu
inner join profesor on matricula.codprofe = profesor.codprofe
where profesor.nombre = 'Portacio Cartagena';
5. cuál es el valor del semestre más alto.
Análisis:
- Información solicitada: Valor del semestre más alto.
- Tablas involucradas: matricula.
- Condiciones: valor más alto.
- Sintaxis: select max(valorsemestre) 'Semestre mas caro' from matricula;
6. Cuál es el promedio del valor de semestre que ha entrado a la cartera de la universidad.
Análisis:
- Información solicitada: Promedio de valor semestre.
- Tablas involucradas: matricula.
- Condiciones: Promedio
- Sintaxis: select avg(valorsemestre) 'Promedio Valores' from matricula;
7. Mostrar los nombres de los estudiantes que comiencen por A o que terminen en R.
Análisis:
- Información solicitada: nombres de estudiantes.
- Tablas involucradas: alumno.
- Condiciones: Estudiantes que comiencen por A o terminen en R.
- Sintaxis: select alumno.codestu, alumno.nombre from alumno where nombre like'a%' or nombre like'%r';
8. Total valor de semestre pagado por carrera.
Análisis:
- Información solicitada: Valores de semestre pagados.
- Tablas involucradas: matricula, carrera
- Condiciones: Por carrera
- Relación de tablas: matricula.codcarre= carrera.codcarre.
- Sintaxis: select matricula.codcarre,
carrera.carrera, sum (matricula.valorsemestre) 'valor pagado x carrera' from
matricula
inner join carrera on matricula.codcarre= carrera.codcarre
group by matricula.codcarre;
9. Visualizar los estudiantes que no están matriculados.
Análisis:
- Información solicitada: Información de estudiantes
- Tablas involucradas: alumno, matricula
- Condiciones: estudiantes no matriculados.
- Relación de tablas: alumno.codestu = matricula.codestu
- Sintaxis: select alumno.*, matricula.codestu 'Matricula' from alumno
left join matricula on alumno.codestu = matricula.codestu
where matricula.codestu is null;