Practica 1

En la base de datos de la institución insertarle los datos que se encuentran en el siguiente archivo de excel (crear las tablas que no se encuentre en la base de datos) y dibujar el nuevo modelo entidad relación y el diagrama relacional:


ENTIDAD RELACIÓN Y DIAGRAMA RELACIONAL.

Tee archivo TXT

Base de Datos Institución:

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:
→ Que se desea Visualizar y de que tablas: Ver los estudiantes con su respectivos acudientes.
 estudiante.nombre  -  acudiente.nombre
→ Que tablas están involucradas:  estudiante, acudiente, acudiente_estudiante.
→ Que condiciones tenemos: igual.
→ Como se relacionan las tablas: 
  estudiante.codestudiante=estudiante_acudiente.codestudiante
  estudiante_acudiente=acudiente.codacudiente
→ Comando se debe utilizar: Select, where.

Sintaxis:
>>> select estudiante.nombre 'ESTUDIANTE', acudiente.nombre 'ACUDIENTE' from estudiante, acudiente,acudiente_estudiante where acudiente.codacudiente=acudiente:estudiante.cdoacudiente and acudiente_estudiante.codestudiante=estudiante.codestudiante;


AQUI EMPIEZO A UTILIZAR EL COMANDO:  LEFT JOIN o (también RIGHT JOIN)
 devuelve todos los registros de la tabla izquierda (tabla1) y los registros coincidentes de la tabla derecha (tabla2). El resultado es NULL desde el lado derecho, si no hay coincidencia.

Sintaxis >>> SELECT tabla.columna FROM tabla1 LEFT JOIN tabla2 ON tabla1.columna = table2.columna; 


2. Que estudiantes no tienen acudiente asignado.

Análisis:
→ Que se desea Visualizar y de que tablas: Estudiantes sin acudiente.
→ Que tablas están involucradas: Estudiante, Acudiente, acudiente_estudiante.
→ Que condiciones tenemos: right join, on
→ Como se relacionan las tablas:
libro.idlibro=liautedi.idlibro
liautedi.codautor=autor.codautor
→ Comando se debe utilizar: Select, where.

Sintaxis:
>>> select estudiante.codestudiante, estudiante.nombre 'ESTUDIANTE SIN ACUDIENTE' from estudiante right join acudiente_estudiante on estudiante.codestudiante=acudiente_estudiante.codestudiante where acudiente_estudiante.codestudiante is null;

3. Que acudientes no matricularon sus hijos en la institución.

Análisis:
→ Que se desea Visualizar y de que tablas: Acudientes sin estudiantes matriculados.
→ Que tablas están involucradas: Estudiante, Acudiente, acudiente_estudiante. 
→ Que condiciones tenemos: N/A
→ Como se relacionan las tablas:
estudiante.codestudiante=acudiente_estudiante.codestudiante,
acudiente_Estudiante is null,

→ Comando se debe utilizar: Select, left join, where.

Sintaxis:
>>> select estudiante.codestudiante, estudiante.nombre 'ACUDIENTE SIN ESTUDIANTE' from estudiante left join acudiente_Estudiante on estudiante.codestudiante=acudiente_estudiante.codestudiante where acudiente_estudiante.codestudiante is null;


4. Visualizar las materias que matriculó el estudiante '00001'.

Análisis:
→ Que se desea Visualizar y de que tablas: Estudiante , materia.
→ Que tablas están involucradas: Estudiante, Materia, Estudiante_materia.
→ Que condiciones tenemos: codestudiante='00001'
→ Como se relacionan las tablas:
estudiante.codestudiante=acudiente_estudiante.codestudiante,
acudiente_Estudiante is null,

→ Comando se debe utilizar: Select, where.

Sintaxis:
>>> select materia.nombre 'MATERIA', estudiante.nombre ' ESTUDIANTE' from materia, estudiante,estudiante_materia where estudiante.codestudiante='00001' and estudiante.codestudiante=estudiante_materia.codestudiante and estudiante_materia.codmateria=materia.codmateria;

5. Visualizar los estudiantes con las materias que matricularon.

Análisis:
→ Que se desea Visualizar y de que tablas: Ver las materias matriculadas por cada estudiante.
→ Que tablas están involucradas: Estudiante, Materia, Estudiante_materia. 
→ Que condiciones tenemos: N/A
→ Como se relacionan las tablas:
estudiante.codestudiante=acudiente_estudiante.codestudiante,
acudiente_Estudiante is null,

→ Comando se debe utilizar: Select, where.

Sintaxis:
>>>  select estudiante.nombre 'ESTUDIANTE', materia.nombre 'MATERIA' from materia,estudiante,estudiante_materia where estudiante.codestudiante=estudiante_materia.codestudiante and estudiante_materia.codmateria=materia.codmateria;

6. Visualizar un listado de los estudiantes que no se han matriculado

Análisis:
→ Que se desea Visualizar y de que tablas: Estudiantes sin matricula.
→ Que tablas están involucradas: Estudiante, Materia, Estudiante_materia.  
→ Que condiciones tenemos: estudiante_materia.codmateria sea null.
→ Como se relacionan las tablas:
estudiante.codestudiante=acudiente_estudiante.codestudiante,
→ Comando se debe utilizar: Select, where.

Sintaxis:
>>> select estudiante.nombre 'ESTUDIANTE' from estudiante left join estudiante_materia on estudiante.codestudiante=estudiante_materia.codestudiante where estudiante_materia.codmateria is null;

7. Visualizar un listado de las materias a las que ningún estudiante se matriculó.

Análisis:
→ Que se desea Visualizar y de que tablas: materia sin estudiantes.
→ Que tablas están involucradas: Estudiante, Materia, Estudiante_materia.   
→ Que condiciones tenemos: estudiante_materia.codestudiante sea null.
→ Como se relacionan las tablas:
materia.codmateria=estudiante_materia.codmateria,
→ Comando se debe utilizar: Select,  left join, where.

Sintaxis:
>>> select materia.nombre 'MATERIA' from materia right join estudiante_materia on materia.codmateria=estudiante_materia.codmateria where estudiante_materia.codestudiante is null;

8. Visualizar los docentes con las materias que dictan

Análisis:
→ Que se desea Visualizar y de que tablas: Doccente y marias asignadas.
→ Que tablas están involucradas: Porfesor, materia, materia_profesor.
→ Que condiciones tenemos:
profesor.codprofesor=materia_profesor.codprofesor and materia_profesor.codmateria=materia.codmateria; 
→ Como se relacionan las tablas:
estudiante.codestudiante=acudiente_estudiante.codestudiante,
acudiente_Estudiante is null,

→ Comando se debe utilizar: Select, where.

Sintaxis:
>>> select profesor.nombre 'PROFESOR', materia.nombre 'MATERIA' from profesor, materia, materia_profesor where profesor.codprofesor=materia_profesor.codprofesor and materia_profesor.codmateria=materia.codmateria;

9. Visualizar las materias que no tienen docente asignado.

Análisis:
→ Que se desea Visualizar y de que tablas: Materias sin docentes asignados.
→ Que tablas están involucradas:  Materia, profesor, materia_profesor.
→ Que condiciones tenemos: N/A
→ Como se relacionan las tablas:
materia.codmateria=materia_profesor.codmateria 
materia_profesor.codprofesor is null; 
→ Comando se debe utilizar: Select, left join, where.

Sintaxis:
>>> select materia.nombre 'MATERIA SIN DOCENTE' from materia left join materia_profesor on materia.codmateria=materia_profesor.codmateria where materia_profesor.codprofesor is null;

10. Visualizar que docentes no tienen materias asignadas.

Análisis:
→ Que se desea Visualizar y de que tablas: Profesores que no tiene materia asginada.
→ Que tablas están involucradas:
Materia, profesor, materia_profesor
→ Que condiciones tenemos: N/A
→ Como se relacionan las tablas:
profesor.codprofesor=materia_profesor.codprofesor 
materia_profesor.codprofesor is null;
 
→ Comando se debe utilizar: Select, right join, where.

Sintaxis:
>>> select profesor.nombre from profesor right join materia_profesor on profesor.codprofesor=materia_profesor.codprofesor where materia_profesor.codprofesor is null;

CON EL COMANDO:  INNER JOIN selecciona registros que tienen valores coincidentes en ambas tablas.

Sintaxis >>> SELECT tabla.columna FROM table1  INNER JOIN table2 
ON table1.column_name = table2.column_name; 

11. Visualizar el estudiante con las materias que tiene matriculadas y que docentes las dicta.

Análisis:
→ Que se desea Visualizar y de que tablas: Estudiante, materia y Profesor.
→ Que tablas están involucradas:  
Estudiante, Materia, profesor, estudiante_materia, materia_profesor.
→ Que condiciones tenemos: N/A
→ Como se relacionan las tablas:
 inner join estudiante_materia on estudiante.codestudiante=estudiante_materia.codestudiante
 inner join materia on estudiante_materia.codmateria=materia.codmateria 
 inner join materia_profesor on materia.codmateria=materia_profesor.codmateria
 inner join profesor on materia_profesor.codprofesor=profesor.codprofesor; 

→ Comando se debe utilizar: Select, inner join, where.

Sintaxis:
>>> select estudiante.nombre 'ESTUDIANTE',materia.nombre 'MATERIA',profesor.nombre 'PROFESOR' from estudiante inner join estudiante_materia on estudiante.codestudiante=estudiante_materia.codestudiante inner join materia on estudiante_materia.codmateria=materia.codmateria inner join materia_profesor on materia.codmateria=materia_profesor.codmateria inner join profesor on materia_profesor.codprofesor=profesor.codprofesor;

NOTA: en cada consulta debe realizar el anális el cual tiene el valor del 50% de cada item.