Está en la página 1de 3

BASE DE DATOS II

Examen Final
Tema:
Consultas mediante sentencias SQL.

Objetivo:
Realizar las consultas solicitadas, haciendo uso de sentencias SQL, aplicando condiciones, suma de
valores, conteo de registros, agrupaciones, entre otros según corresponda.

Actividades:
1. De todos los docentes, mostrar el id, nombre y apellidos concatenados en una sola
columna llamada “docente”. Adicionalmente mostrar el número de cursos que tiene
asignado cada docente. (5ptos)

select d.id, concat_ws(" ", per.nombre, per.apellidos) docente, count(c.id) cursos from
persona per join docente d on d.idpersona=per.id join curso c on c.iddocente=d.id group
by d.id;

2. Mostrar id de inscripción, nombre completo del alumno inscrito concatenado en una sola
columna llamada “inscripcion”, nombre del curso, fecha inicio y fecha final del curso de
todos los alumnos inscritos al curso llamado “PYTHON”. (5ptos)

select i.id, concat_ws(" ", per.nombre, per.apellidos) inscripcion, c.nombre, c.desde


fechaIni, c.hasta fechaFin from persona per join inscripcion i on i.idpersona=per.id join
inscripcioncurso inc on inc.idinscripcion=i.id join curso c on inc.idcurso=c.id where
c.nombre="PYTHON";

3. Mostrar el año al que pertenece el curso y la cantidad de cursos impartidos por año
(tomar como referencia la fecha de inicio del curso). (5ptos)

select date_format(c.desde, '%Y') año, count(c.desde) total from curso c join


inscripcioncurso inc on inc.idcurso=c.id group by date_format(c.desde, '%Y');

4. Mostrar nombre y apellido concatenado de las inscripciones y llamarla inscripción, las


calificaciones n1, n2, n3, n4, ne, además en otra columna mostrar la suma de todas las
notas llamada “total”. Adicionalmente mostrar el nombre del curso de los alumnos
inscritos al curso de “PHP”. (5ptos)

select concat_ws(" ", per.nombre, per.apellidos) inscripcion, ca.n1, ca.n2, ca.n3, ca.n4,
ca.ne, sum(ca.n1+ca.n2+ca.n3+ca.n4+ca.ne) total, ifnull(c.nombre, "") curso from persona
per join inscripcion i on i.idpersona=per.id join inscripcioncurso inc on inc.idinscripcion=i.id
join calificacion ca on ca.idinscripcioncurso=inc.id join curso c on inc.idcurso=c.id where
c.nombre="PHP" group by i.id;
5. Mostrar nombre y apellido concatenado de las inscripciones y llamarla inscripción, en otra
columna con nombre de cabecera “estado” mostrar “APROBADO” si la inscripción tiene
una calificación igual o mayor a 70, o “REPROBADO” en caso de tener menor a 70, para los
alumnos inscriptos al curso de PHP. (5ptos)

select concat_ws(" ", per.nombre, per.apellidos) inscripción,


if(sum(ca.n1+ca.n2+ca.n3+ca.n4+ca.ne)>=70, "Aprobado", "Reprobado") estado,
ifnull(c.nombre, "") curso from persona per join inscripcion i on i.idpersona=per.id join
inscripcioncurso inc on inc.idinscripcion=i.id join calificacion ca on
ca.idinscripcioncurso=inc.id join curso c on inc.idcurso=c.id where c.nombre="PHP" group
by i.id;

6. Mostrar nombre de inscripción, nombre de docente, nombre del curso de los alumnos
inscritos a cursos. (2ptos)

select a.alumno, d.docente, a.curso from (select per.id idper, i.id idi, inc.id idinc, c.id idc,
concat_ws(" ", per.nombre, per.apellidos) alumno, c.nombre curso from persona per join
inscripcion i on i.idpersona=per.id join inscripcioncurso inc on inc.idinscripcion=i.id join
curso c on inc.idcurso=c.id group by i.id) a join (select d.id idd, concat_ws(" ", per.nombre,
per.apellidos) docente from persona per join docente d on d.idpersona=per.id) d on
a.idc=d.idd;

Orientaciones metodológicas:
 Subir este archivo agregando la siguiente información por cada una de las consultas
realizadas:
1. Sentencia SQL pegada en forma de texto de la consulta realizada.
2. Captura de imagen de la tabla generada a partir de la consulta propuesta.

También podría gustarte