Reto 2
Solución
a. ¿Qué se desea consultar y de que tablas?
Consultar los discentes que estudian sistemas (075, 088)
¿Qué tablas se ven afectadas o involucradas?
discentes
Condiciones
Código de carrera sea 075 o 088
¿Cómo se relacionan las tablas?
No hay relaciones
¿Qué comando se debe utilizar?
where
SINTAXIS
select * from discentes where substr(carnet, 10, 3) in ('075', '088');
b. ¿Qué se desea consultar y de que tablas?
Contar los discentes que están matriculados en ingeniería (075)
¿Qué tablas se ven afectadas o involucradas?
discentes
Condiciones
Código de carrera sea 075
¿Cómo se relacionan las tablas?
No hay relaciones
¿Qué comando se debe utilizar?
count + where
SINTAXIS
select count(*) from discentes where substr(carnet, 10, 3) = '075';
c. ¿Qué se desea consultar y de que tablas?
Consultar los nombres de los discentes cuyos caracteres no excedan de 25
¿Qué tablas se ven afectadas o involucradas?
discentes
Condiciones
Largo del nombre ≤ 25
¿Cómo se relacionan las tablas?
No hay relaciones
¿Qué comando se debe utilizar?
where + length
SINTAXIS
select nombre from discentes where length(nombre) <= 25;
d. ¿Qué se desea consultar y de que tablas?
Contar los discentes que no están matriculados en tecnología en sistemas
¿Qué tablas se ven afectadas o involucradas?
discentes
Condiciones
Carrera diferente de 075 y 088
¿Cómo se relacionan las tablas?
No hay relaciones
¿Qué comando se debe utilizar?
where + not in
SINTAXIS
select count(*) from discentes where substr(carnet, 10, 3) not in ('075', '088');
e. ¿Qué se desea consultar y de que tablas?
Contar los discentes que iniciaron estudios en 2012
¿Qué tablas se ven afectadas o involucradas?
discentes
Condiciones
Año de ingreso = 2012
¿Cómo se relacionan las tablas?
No hay relaciones
¿Qué comando se debe utilizar?
where + substr
SINTAXIS
select count(*) from discentes where substr(carnet, 1, 4) = '2012';
f. ¿Qué se desea consultar y de que tablas?
Contar los discentes que iniciaron en el primer semestre
¿Qué tablas se ven afectadas o involucradas?
discentes
Condiciones
Semestre = 1 (quinto carácter)
¿Cómo se relacionan las tablas?
No hay relaciones
¿Qué comando se debe utilizar?
where + substr
SINTAXIS
select count(*) from discentes where substr(carnet, 5, 1) = '1';
g. ¿Qué se desea consultar y de que tablas?
Contar los alumnos que se matricularon antes del 2013
¿Qué tablas se ven afectadas o involucradas?
discentes
Condiciones
Año (primeros 4 caracteres) < 2013
¿Cómo se relacionan las tablas?
No hay relaciones
¿Qué comando se debe utilizar?
where + substr
SINTAXIS
select count(*) from discentes where substr(carnet, 1, 4) < '2013';
h. ¿Qué se desea consultar y de que tablas?
Ordenar los discentes por año de matrícula
¿Qué tablas se ven afectadas o involucradas?
discentes
Condiciones
Ninguna
¿Cómo se relacionan las tablas?
No hay relaciones
¿Qué comando se debe utilizar?
order by
SINTAXIS
select * from discentes order by substr(carnet, 1, 4);
i. ¿Qué se desea consultar y de que tablas?
Listar discentes de ingeniería de sistemas, matriculados antes del 2012 en segundo semestre
¿Qué tablas se ven afectadas o involucradas?
discentes
Condiciones
Carrera = 075, año < 2012, semestre = 2
¿Cómo se relacionan las tablas?
No hay relaciones
¿Qué comando se debe utilizar?
where + substr
SINTAXIS
select * from discentes where substr(carnet, 10, 3) = '075' and substr(carnet, 1, 4) < '2012' and substr(carnet, 5, 1) = '2';
j. ¿Qué se desea consultar y de que tablas?
Consultar el carnet menor de discentes que no son de sistemas
¿Qué tablas se ven afectadas o involucradas?
discentes
Condiciones
Carrera diferente de 075 y 088
¿Cómo se relacionan las tablas?
No hay relaciones
¿Qué comando se debe utilizar?
min + where
SINTAXIS
select min(carnet) from discentes where substr(carnet, 10, 3) not in ('075', '088');
k.¿Qué se desea consultar y de que tablas?
Aplicar descuento del 5% si el carnet termina en 088
¿Qué tablas se ven afectadas o involucradas?
discentes
Condiciones
Carrera = 088 → aplica descuento
¿Cómo se relacionan las tablas?
No hay relaciones
¿Qué comando se debe utilizar?
case + substr
SINTAXIS
select nombre, case when substr(carnet, 10, 3) = '088' then 'Descuento 5%' else 'Pago completo' end as pago from discentes;
l.¿Qué se desea consultar y de que tablas?
Verificar si el estudiante es de contaduría (073)
¿Qué tablas se ven afectadas o involucradas?
discentes
Condiciones
Carrera = 073 → contaduría
¿Cómo se relacionan las tablas?
No hay relaciones
¿Qué comando se debe utilizar?
case + substr
SINTAXIS
select nombre, case when substr(carnet, 10, 3) = '073' then 'Contaduría' else 'Otra carrera afín' end as carrera from discentes;
m.¿Qué se desea consultar y de que tablas?
Listar estudiantes de ingeniería de sistemas con una "i" en su nombre
¿Qué tablas se ven afectadas o involucradas?
discentes
Condiciones
Carrera = 075, nombre contiene 'i'
¿Cómo se relacionan las tablas?
No hay relaciones
¿Qué comando se debe utilizar?
where + substr + like
SINTAXIS
select * from discentes where substr(carnet, 10, 3) = '075' and nombre like '%i%';