Actividad 7
Introduce un texto aquí...
Base de Datos
Descargar la BD y realizar el Modelo Entidad Relación
https://www.dropbox.com/s/ghgamyat6xuilg4/matricular.sql?dl=0
A continuación se evidencia el MER de la base de Datos anterior:
Realizar una investigación más amplia sobre el comando : Join, Left Join, Rigth Join, inner join y en que instancias de deben utilizar
Realizar consultas con Join, Left Join, Rigth Join, inner join
1. CONSULTAS CON EL LEFT JOIN
* Que se desea consultar y de que tablas?
Toda la información de los estudiantes solteros matriculados
*Que tablas se ven afectadas o involucradas?
Estudiante, Matricula
*Condición
where e.estado_civil='soltero'
*Comando a utilizar
Select con left Join
*Sintaxis
select e.* from estudiante as e left join matricular as m on e.carnet=m.carnet where e.estado_civil='soltero'group by carnet;
2. CONSULTAS CON EL INNER JOIN
* Que se desea consultar y de que tablas?
Estudiantes que están matriculados en la asignatura Java y que estudian en la jornada Mañana
*Que tablas se ven afectadas o involucradas?
Matricular, estudiantes_asignatura, estudiantes_jornada, estudiante, jornada, asignatura
*Condición
a.nombre='java' and j.descripcion='Mañana'
*Comando a utilizar
Select con Inner Join
*Sintaxis
Select e.nombre 'Nombre Estudiante' , a.nombre 'Asignatura', j.descripcion 'jornada' from estudiante e inner join asignatura a inner join jornada j inner join matricular m inner join estudiante_asignatura ea inner join estudiante_jornada ej on e.carnet=ea.carnet and e.carnet=ej.carnet and e.carnet=m.carnet and j.idj=m.idj where a.nombre='java' and j.descripcion='Mañana'group by e.carnet;
3. CONSULTAS CON EL RIGTH JOIN
* Que se desea consultar y de que tablas?
Estudiantes que están viudos y les gusta leer
*Que tablas se ven afectadas o involucradas?
Estudiante
*Condición
where e.estado_civil='viudo' and e.hobby='leer' *Comando a utilizar Select con Right Join
*Sintaxis
select e.nombre, e.estado_civil'Estado Civil', e.hobby from estudiante as e right join matricular as m on e.carnet=m.carnet where e.estado_civil='viudo' and e.hobby='leer' group by e.carnet;
4. CONSULTAS CON EL JOIN
* Que se desea consultar y de que tablas?
Cuales profesores están programados para dar bases de datos a los estudiantes que ya están matriculados
*Que tablas se ven afectadas o involucradas?
Profesores, Matricular, ASIGNATURA
*Condición
where a.nombre='Base de Datos'
*Comando a utilizar
Select con Join
*Sintaxis
Select p.nombre 'Nombre Profesor', a.nombre 'Asignatura' from matricular m join profesor p join asignatura a on m.cod=p.cod and a.id=m.id where a.nombre='Base de Datos' group by p.nombre;
Realizar de a una consulta más con cada Join en esta misma base de datos con sus respectivos análisis y resultados.
Nuevas consultas:
1. CONSULTA CON JOIN
¿Qué se desea consultar y de qué tablas? Combinación de todos los profesores con todas las jornadas disponibles, para ver en qué jornadas podría enseñar cada profesor.
¿Qué tablas se ven afectadas o involucradas? profesor, jornada
Condición No aplica (cross join combina todas las filas)
Comando a utilizar select con join (cross join)
Sintaxis
select p.nombre 'Profesor', j.descripcion 'Jornada'
from profesor p
join jornada j;
2. CONSULTA CON LEFT JOIN
¿Qué se desea consultar y de qué tablas? Todos los estudiantes junto con sus matrículas, incluyendo aquellos que no tienen ninguna matrícula registrada.
¿Qué tablas se ven afectadas o involucradas? estudiante, matricular
Condición No aplica (se listan todos los estudiantes independientemente de si tienen matrícula)
Comando a utilizar select con left join
Sintaxis
select e.carnet 'Carnet', e.nombre 'Estudiante', m.codreg 'Cod. Matrícula', m.valor 'Valor', m.fecha 'Fecha'
from estudiante e
left join matricular m on e.carnet = m.carnet
order by e.carnet;
3. CONSULTA CON RIGHT JOIN
¿Qué se desea consultar y de qué tablas? Todas las asignaturas y los estudiantes que están matriculados en ellas, incluyendo las asignaturas que no tienen ningún estudiante matriculado.
¿Qué tablas se ven afectadas o involucradas? matricular, asignatura
Condición No aplica (se listan todas las asignaturas aunque no tengan estudiantes matriculados)
Comando a utilizar select con right join
Sintaxis
select a.id 'ID Asignatura', a.nombre 'Asignatura', e.nombre 'Estudiante'
from matricular m
right join asignatura a on m.id = a.id
left join estudiante e on m.carnet = e.carnet
order by a.id;
4. CONSULTA CON INNER JOIN
¿Qué se desea consultar y de qué tablas? Los estudiantes de sexo femenino que están matriculados con el profesor Jorge Mauricio Sepúlveda, mostrando la asignatura y la jornada correspondiente.
¿Qué tablas se ven afectadas o involucradas? estudiante, matricular, profesor, asignatura, jornada
Condición p.nombre = 'Jorge Mauricio Sepúlveda' and e.sexo = 'femenino'
Comando a utilizar select con inner join
Sintaxis
select e.nombre 'Estudiante', a.nombre 'Asignatura', j.descripcion 'Jornada', p.nombre 'Profesor'
from estudiante e
inner join matricular m on e.carnet = m.carnet
inner join profesor p on m.cod = p.cod
inner join asignatura a on m.id = a.id
inner join jornada j on m.idj = j.idj
where p.nombre = 'Jorge Mauricio Sepúlveda'
and e.sexo = 'femenino'
order by e.nombre;