Parcial 2
Parte 1.1
Modelo ER:
BD: https://drive.google.com/file/d/1Vwbqqni4BIOmxgoXJ50fQvp-yhV2910_/view?usp=sharing
Parte 1.2
1. ¿Qué se desea consultar y de qué tablas?
nombre de los discentes cristianos
¿Qué tablas se ven afectadas o involucradas?
estudiantes
Condiciones
Religion = 1 (porque 'Cristianismo' es el primer valor del ENUM)
¿Cómo se relacionan las tablas?
No hay relaciones
¿Qué comando se debe utilizar?
WHERE
SINTAXIS
select * from estudiante where religion = 1;

2. ¿Qué se desea consultar y de qué tablas?
los discentes cristianos que ven clase lunes y sábado
¿Qué tablas se ven afectadas o involucradas?
estudiantes
Condiciones
religion = 1
y dias_clase contiene 'lunes' y 'sabado'
¿Cómo se relacionan las tablas?
no hay relaciones
¿Qué comando se debe utilizar?
where y find_in_set
SINTAXIS
select * from estudiante where religion = 1 and find_in_set('lunes', dias_clase) > 0 and find_in_set('sabado', dias_clase) > 0;

3. ¿Qué se desea consultar y de qué tablas?
nombre de los discentes con los filtros dados
¿Qué tablas se ven afectadas o involucradas?
estudiantes
Condiciones
religion != 1
practican ciclismo y baloncesto
ven clase viernes
carrera distinta a espec_seguridad
¿Cómo se relacionan las tablas?
no hay relaciones
¿Qué comando se debe utilizar?
where y find_in_set
SINTAXIS
select * from estudiante where religion != 1 and find_in_set('ciclismo', deporte) > 0 and find_in_set('baloncesto', deporte) > 0 and find_in_set('viernes', dias_clase) > 0 and car_infom != 'espec_seguridad';

4. ¿Qué se desea consultar y de qué tablas?
nombre de los discentes con esos filtros
¿Qué tablas se ven afectadas o involucradas?
estudiantes
Condiciones
car_infom != 'tecnico profesional'
nombre contiene 'l'
deporte contiene 'voleibol'
religion != 1
valor_semes entre 1700000 y 4300000
¿Cómo se relacionan las tablas?
no hay relaciones
¿Qué comando se debe utilizar?
where, like, between, find_in_set
SINTAXIS
select * from estudiante where car_infom != 'tecnico profesional' and nombre like '%l%' and find_in_set('voleibol', deporte) > 0 and religion != 1 and valor_semes between 1700000 and 4300000 ;

5. ¿Qué se desea consultar y de qué tablas?
promedio del valor_semes de ing_sistemas
¿Qué tablas se ven afectadas o involucradas?
estudiantes
Condiciones
car_infom = 'ing_sistemas'
¿Cómo se relacionan las tablas?
no hay relaciones
¿Qué comando se debe utilizar?
avg y where
SINTAXIS
select avg(valor_semes) as promedio_valor_semes from estudiante where car_infom = 'ing_sistemas' ;

6. ¿Qué se desea consultar y de qué tablas?
nombre de los estudiantes con cualificación intelectual, clase sábado y nombre termina en n
¿Qué tablas se ven afectadas o involucradas?
estudiantes
Condiciones
detalles contiene 'intelectual'
dias_clase contiene 'sabado'
nombre termina en 'n'
¿Cómo se relacionan las tablas?
no hay relaciones
¿Qué comando se debe utilizar?
like y find_in_set
SINTAXIS
select * from estudiante where detalles like '%intelectual%' and find_in_set('sabado', dias_clase) > 0 and nombre like '%n' ;

Parte 2
1.
Una academia almacena los datos de sus alumnos
en una tabla llamada ESTUDIANTE.
1.1 Cree la tabla estudiante con la siguiente estructura:
identificación varchar (10) (clave primaria)
nombre varchar (30)
Estadocivil enum (soltero, casado,
unión libre, divorciado, viudo)
fechamatricula date
1.2 Ingrese los siguientes registros:
2040 Elizabeth
Cano casado 2013-01-01
2140 Denis Rico divorciado 2013-02-18
2341 Alfredo Lara casado 2014-06-20
1840 Armando Casas viudo 2014-01-28
2044 Eliodoro Puerta casado 2015-07-20
2314 Mariana Salinas casado 2016-06-06
2318 Benito Céspedes casado 2016-06-30
2045 Roberto Jiménez soltero 2017-01-30
1.3 La academia necesita almacenar en una tabla llamada registrocursos la cantidad de alumnos que ingresaron por año. (Cree la tabla a partir de la tabla estudiante)
Muestre la información desde la tabla estudiante.
¿Qué se desea consultar y de qué tablas?
cantidad de alumnos que ingresaron por año
¿Qué tablas se ven afectadas o involucradas?
registrocursos
Condiciones
select year(fechamatricula)
¿Cómo se relacionan las tablas?
no hay relaciones
¿Qué comando se debe utilizar?
count
SINTAXIS
create table registrocursos as select year(fechamatricula) as año, count(*) as cantidad from estudiante group by año;

2.
El profesor PORFIRIO Álvarez Arango guarda las notas que toma a sus estudiantes en una tabla llamada planilla.
2.1 Cree la entidad planilla con la siguiente estructura:
Carnet varchar (12) (clave
primaria)
nombre varchar(30)
nota decimal(4,2) unsigned
Tenga presente que algunos estudiantes pueden tener más notas que otros por trabajos presentados extras (para recuperación)
2.2 Ingrese la siguiente información:
010 Soledad Ospina 4.0
011 Marta Salazar 1.5
012 Margarita Sol 1.5
013 Fabian Juda 4.0
010 Soledad Ospina 2.5
011 Marta Salazar 1.0
012 Margarita Sol 5.0
013 Fabian Juda 4.5
010 Soledad Ospina 2.0
010 Soledad Ospina 3.8
011 Marta Salazar 3.8
013 Fabian Juda 5.0
2.3 El profesor Rodrigo Patiño necesita generar una tabla llamada promedio que tenga especificado el carnet del estudiante y el promedio de sus calificaciones obtenidas.
2.3.1 Cree la tabla promedio con los campos (carnet y promedio) realizando la consulta necesaria a la tabla planilla
¿Qué se desea consultar y de qué tablas?
Crear tabla nueva con carnet y promedio de calificaciones.
¿Qué tablas se ven afectadas o involucradas?
planilla, promedio
¿Qué comando se debe utilizar?
create table as select
Sintaxis
create table promedio as select carnet, avg(nota) as promedio from planilla group by carnet;

2.3.2 Agrupe por carnet y seleccione el carnet y nombre de los alumnos aprobados en promedio >=4.0
¿Qué se desea consultar y de qué tablas?
Ver estudiantes aprobados (promedio ≥ 4.0)
¿Qué tablas se ven afectadas o involucradas?
planilla
Condiciones
avg(nota) >= 4.0
¿Qué comando se debe utilizar?
group by, having
Sintaxis
select carnet, nombre from planilla group by carnet, nombre having avg(nota) >= 4.0;

2.3.3 Cree una entidad llamada alumno_aprobado y guarde allí el carnet y nombre de los alumnos que pasan el curso.
¿Qué se desea consultar y de qué tablas?
Crear entidad con carnet y nombre de aprobados
¿Qué tablas se ven afectadas o involucradas?
planilla, alumno_aprobado
¿Qué comando se debe utilizar?
create table as select
Sintaxis
create table alumno_aprobado as select carnet, nombre from planilla group by carnet, nombre having avg(nota) >= 4.0;

3.
3.1 Cree la tabla porcentaje_calificacion, con la siguiente estructura:
Codpor varchar(5) not null primary key,
Descrip varchar(30) not null)
Ingrese los siguientes
registros:
01 Parcial 1
02 Parcial 2
03 Seguimiento
04 Parcial final
3.2 Normalización de la tabla planilla. Para lo cual debe crear la tabla planilla1 con los campos: carnet, nombre, notapromedio y codpor. Los campos carnet y nombre deben conservar la misma estructura que tienen los mismos campos en la tabla planilla. Y el campo codpor debe conservar la estructura del mismo campo que tiene la tabla porcentaje_calificacion.
¿Qué tablas se ven afectadas o involucradas?
planilla, porcentaje_calificacion, planilla1
¿Condiciones?
estructura debe mantenerse
¿Cómo se relacionan las tablas?
codpor viene de porcentaje_calificacion
¿Qué comandos se deben usar?
create table
Sintaxis
create table planilla1 ( carnet varchar(12), nombre varchar(30), notapromedio decimal(4,2) unsigned, codpor varchar(5), foreign key (codpor) references porcentaje_calificacion(codpor) );
3.3 Tema: Insertar datos en una tabla buscando el valor en otra.
Inserte en la tabla planilla el registro 05, el cual le pertenece a Edilberto Parra, cuya nota promedio es de 3.8. Busque el valor del código porcentaje en la tabla porcentaje_calificacion cuando la descripción corresponda a la nota final.
¿Qué tablas se ven afectadas o involucradas?
planilla1, porcentaje_calificacion
¿Condiciones?
codpor debe obtenerse por medio de una subconsulta
¿Cómo se relacionan las tablas?
mediante codpor ↔ descrip
¿Qué comando se debe utilizar?
insert into, select
Sintaxis
insert into planilla1 (carnet, nombre, notapromedio, codpor) values ('05', 'Edilberto Parra', 3.8, (select codpor from porcentaje_calificacion where descrip = 'Parcial final') );
3.4 Verificar que el registro quedó guardado en la tabla planilla con sus datos respectivos.
