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:

  1. Información solicitada: Mostrar información de los estudiantes con sus acudientes.
  2. Tablas involucradas: acudiente, estudiante, estuacu.
  3. Condiciones: ninguna.
  4. Relación de tablas: acudiente.idacudiente = estuacu.idacudiente and estudiante.idestudiante = estuacu.idestudiante
  5. 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:

  1. Información solicitada: Mostrar información de los estudiantes.
  2. Tablas involucradas: estudiante, estuacu.
  3. Condiciones: sin acudiente asignado.
  4. Relación de tablas: estudiante.idestudiante = estuacu.idestudiante
  5. 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:

  1. Información solicitada: Mostrar información de los acudientes y estudiantes.
  2. Tablas involucradas: estudiante, estuacu, acudiente, estumat
  3. Condiciones: estudiantes no matriculados en la institución.
  4. Relación de tablas: acudiente.idacudiente = estuacu.idacudiente, estuacu.idestudiante = estudiante.idestudiante, estudiante.idestudiante = estumat.idestudiante, 
  5. 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:

  1. Información solicitada: Mostrar información de materias matriculadas.
  2. Tablas involucradas: materia, estumat.
  3. Condiciones: idestudiante  = 0001.
  4. Relación de tablas: materia.codigomat = estumat.codigomat
  5. 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:

  1. Información solicitada: Mostrar información de los estudiantes con sus materias.
  2. Tablas involucradas: materia, estumat, estudiante.
  3. Condiciones: ninguna
  4. Relación de tablas: estudiante.idestudiante = estumat.idestudiante, estumat.codigomat  = materia.codigomat
  5. 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:

  1. Información solicitada: Mostrar información de estudiantes.
  2. Tablas involucradas: estumat, estudiante.
  3. Condiciones: Estudiantes que no se han matriculado. 
  4. Relación de tablas: estudiante.idestudiante = estumat.idestudiante.
  5. 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:

  1. Información solicitada: Mostrar información de Materias.
  2. Tablas involucradas: estumat, materia.
  3. Condiciones: Materias que ninguno ha matriculado.
  4. Relación de tablas: materia.codigomat = estumat.codigomat
  5. 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:

  1. Información solicitada: Mostrar información de los profesores y materias.
  2. Tablas involucradas: materia, matprofe, profesor.
  3. Condiciones: ninguna
  4. Relación de tablas: profesor.idprofesor= matprofe.idprofesor, matprofe.codigomat = materia.codigomat
  5. 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:

  1. Información solicitada: Mostrar información de las materias.
  2. Tablas involucradas: materia, matprofe.
  3. Condiciones: Materias sin docente asignado.
  4. Relación de tablas: materia.codigomat= matprofe.codigomat
  5. 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:

  1. Información solicitada: Mostrar información de las docentes.
  2. Tablas involucradas: profesor, matprofe.
  3. Condiciones: Docentes sin materias asignadas.
  4. Relación de tablas: profesor.idprofesor= matprofe.idprofesor
  5. 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:

  1. Información solicitada: Mostrar información de los estudiantes con sus materias y docentes.
  2. Tablas involucradas: estudiante, estumat, materia, matprofe, profesor
  3. Condiciones: ninguna
  4. Relación de tablas: estudiante.idestudiante = estumat.idestudiante, estumat.codigomat = materia.codigomat, materia.codigomat = matprofe.codigomat, matprofe.idprofesor = profesor.idprofesor
  5. 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:

  1. Información solicitada: Mostrar información de los profesores.
  2. Tablas involucradas: profesor, profcar, carrera.
  3. Condiciones: Carrera = ingeniería de sistemas.
  4. Relación de tablas: profesor.codprofe = profcar.codprofe, profcar.codcarre= carrera.codcarre.
  5. 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:

  1. Información solicitada: Información de alumnos y profesores.
  2. Tablas involucradas: alumno, matricula, profesor, profcar, carrera
  3. Condiciones: Alumnos matriculados en Derecho.
  4. Relación de tablas: alumno.codestu = matricula.codestu, matricula.codprofe = profesor.codprofe, profesor.codprofe = profcar.codprofe, profcar.codcarre = carrera.codcarre
  5. 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:

  1. Información solicitada: Valores de semestre.
  2. Tablas involucradas: matricula, carrera
  3. Condiciones: Alumnos matriculados en veterinaria.
  4. Relación de tablas: matricula.codcarre = carrera.codcarre
  5. 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:

  1. Información solicitada: Información de alumnos y profesor.
  2. Tablas involucradas: alumno, matricula, profesor.
  3. Condiciones: Alumnos que ven clases con el profesor Portacio Cartagena.
  4. Relación de tablas: alumno.codestu = matricula.codestu, matricula.codprofe = profesor.codprofe.
  5. 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:

  1. Información solicitada: Valor del semestre más alto.
  2. Tablas involucradas: matricula.
  3. Condiciones: valor más alto.
  4. 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:

  1. Información solicitada: Promedio de valor semestre.
  2. Tablas involucradas: matricula.
  3. Condiciones: Promedio
  4. 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:

  1. Información solicitada: nombres de estudiantes.
  2. Tablas involucradas: alumno.
  3. Condiciones: Estudiantes que comiencen por A o terminen en R.
  4. 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:

  1. Información solicitada: Valores de  semestre pagados.
  2. Tablas involucradas: matricula, carrera
  3. Condiciones: Por carrera
  4. Relación de tablas: matricula.codcarre= carrera.codcarre.
  5. 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:

  1. Información solicitada: Información de estudiantes
  2. Tablas involucradas: alumno, matricula
  3. Condiciones: estudiantes no matriculados.
  4. Relación de tablas: alumno.codestu = matricula.codestu
  5. Sintaxis: select alumno.*, matricula.codestu 'Matricula' from alumno

    left join matricula on alumno.codestu = matricula.codestu

    where matricula.codestu is null;

fin Parcial 2

Ricardo Restrepo - Blog para bases de datos
Todos los derechos reservados 2020
Creado con Webnode
¡Crea tu página web gratis! Esta página web fue creada con Webnode. Crea tu propia web gratis hoy mismo! Comenzar