0% encontró este documento útil (0 votos)
64 vistas9 páginas

Consultas SQL para Gestión Académica

El documento contiene varias consultas SQL para obtener información de tablas como alumno, profesor, asignatura, entre otras. Incluye consultas simples, consultas con joins, agregaciones y subconsultas para recuperar y relacionar datos de múltiples tablas de una base de datos de una institución educativa.

Cargado por

Karina Litvak
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
64 vistas9 páginas

Consultas SQL para Gestión Académica

El documento contiene varias consultas SQL para obtener información de tablas como alumno, profesor, asignatura, entre otras. Incluye consultas simples, consultas con joins, agregaciones y subconsultas para recuperar y relacionar datos de múltiples tablas de una base de datos de una institución educativa.

Cargado por

Karina Litvak
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Resolución: lo que esta resaltado lo tengo modificar

1-Consultas sobre una tabla

1.a- SELECT apellido1, apellido2, nombre

FROM alumno

ORDER BY apellido1, apellido2, nombre;

1.b- SELECT nombre, apellido1, apellido2

FROM alumno

WHERE telefono IS null;

1.c- SELECT *

FROM alumno

WHERE year(fecha_nacimiento) = '1999';

1.d- SELECT *

FROM profesor

WHERE nif LIKE '%K

'AND telefono IS null;

1.e- SELECT * FROM asignatura

WHERE cuatrimestre = '1'

AND curso = '3'

AND id_grado = '7';

2-Consultas multitabla (inner join)


2.a- SELECT asig.nombre "Nombre Asignatura",

asig.curso "Curso",

asig.cuatrimestre "Cuatrimestre",

gr.nombre "Grado"

FROM asignatura asig

INNER JOIN grado gr


ON asig.id_grado = gr.id

WHERE gr.nombre = 'Grado en Ingeniería Informática (Plan 2015)';

2.b- SELECT p.apellido1 "Primer apellido" ,

p.apellido2 "Segundo apellido",

p.nombre "Nombre",

dep.nombre "Departamento"

FROM profesor p

INNER JOIN departamento dep

ON p.id_departamento = dep.id

ORDER BY p.apellido1, p.nombre

2.c- SELECT asig.nombre

,c.anyo_inicio

,c.anyo_fin

,a.nif

FROM alumno_se_matricula_asignatura am

INNER JOIN alumno a

ON a.id = am.id_alumno

INNER JOIN curso_escolar c

ON a.id = c.id

INNER JOIN asignatura asig

ON am.id_asignatura = asig.id

AND a.nif = '26902806M';

2.d- SELECT d.nombre "Nombre Departamento",

p.nombre "Nombre Profesor",

a.nombre "Nombre Asignatura"

FROM departamento d

INNER JOIN profesor p

ON d.id = p.id_departamento

INNER JOIN asignatura a

ON p.id = a.id_profesor
INNER JOIN grado g

ON a.id_grado = g.id

WHERE g.nombre = 'Grado en Ingeniería Informática (Plan 2015)';

2.e- SELECT a.nombre "Nombre",

a.apellido1 "Primer Apellido",

a.apellido2 "Segundo Apellido",

asig.nombre "Nombre Asignatura"

FROM alumno a

INNER JOIN alumno_se_matricula_asignatura asma

ON a.id = asma.id_alumno

INNER JOIN curso_escolar ce

ON asma.id_curso_escolar = ce.id

INNER JOIN asignatura asig

ON asma.id_asignatura = asig.id

WHERE ce.anyo_inicio = 2018 AND ce.anyo_fin = 2019;

2.f- SELECT a.nombre "Nombre Alumno",

a.apellido1 "Primer Apellido",

a.apellido2 "Segundo Apellido"

FROM alumno a

INNER JOIN alumno_se_matricula_asignatura asma

ON a.id = asma.id_alumno

INNER JOIN asignatura asig

ON asma.id_asignatura= asig.id

INNER JOIN grado g

ON asig.id_grado = g.id

WHERE g.nombre = 'Grado en Ingeniería Informática (Plan 2015)' AND a.sexo = 'M';
3-Consultas multitabla (LEFT JOIN Y RIGHT JOIN)
3.a- SELECT d.nombre "Departamento",

p.apellido1 "Primer Apellido",

p.apellido2 "Segundo Apellido",

p.nombre "Nombre Profesor",

p.id_departamento

FROM departamento d

RIGHT JOIN profesor p

ON d.id = p.id_departamento

ORDER BY d.nombre, p.apellido1, p.apellido2, p.nombre;

3.b- SELECT p.apellido1 "Primer Apellido",

p.apellido2 "Segundo Apellido",

p.nombre "Nombre Profesor",

d.nombre "Departamento"

FROM profesor p

LEFT JOIN departamento d

ON p.id_departamento = d.id

WHERE p.id_departamento IS null

ORDER BY d.nombre, p.apellido1, p.apellido2, p.nombre;

3.c- SELECT d.nombre

FROM profesor p

RIGHT JOIN departamento d

ON p.id_departamento = d.id

WHERE p.id IS null;

3.d- SELECT profesor.id


FROM profesor LEFT JOIN asignatura

ON profesor.id=asignatura.id_profesor

WHERE profesor.id IS NULL;

3.e- SELECT asignatura.nombre

FROM asignatura LEFT JOIN profesor

ON asignatura.id_profesor=profesor.id

WHERE asignatura.id_profesor IS NULL;

SELECT asignatura.*

FROM profesor,asignatura

WHERE asignatura.id_profesor IS NULL;

3.f- SELECT d.nombre "Departamento"

, a.nombre "Asignatura"

FROM departamento d

INNER JOIN profesor p

ON d.id = p.id_departamento

INNER JOIN asignatura a

ON p.id = a.id_profesor

LEFT JOIN curso_escolar c

ON a.curso = c.id

WHERE c.id IS NULL;

4-Consulta resumen
4.a- SELECT COUNT(a.sexo) "Numero Alumnas"

FROM alumno a

WHERE a.sexo = 'M';

4.b- SELECT COUNT(fecha_nacimiento) Total

FROM alumno a

WHERE a.fecha_nacimiento LIKE '1999%'


GROUP BY fecha_nacimiento;

4.c- SELECT departamento.nombre,

COUNT(profesor.id_departamento) "Numero de Profesores"

FROM departamento

LEFT JOIN profesor

ON departamento.id = profesor.id_departamento

WHERE profesor.id_departamento IS NOT NULL

GROUP BY profesor.id_departamento

ORDER BY 2 DESC;

4.d- SELECT d.nombre "Departamento",

COUNT(p.id_departamento) "Cantidad Profesores"

FROM departamento d

LEFT JOIN profesor p

ON d.id = p.id_departamento

GROUP BY p.id_departamento

ORDER BY 2 DESC;

4.e- SELECT g.nombre

, COUNT(a.id) "Cantidad de asignaturas"

FROM grado g

left JOIN asignatura a

ON g.id = a.id_grado

GROUP BY g.nombre

ORDER BY COUNT(a.id) ASC;

4.f-

4.g-

4.h- SELECT ce.anyo_inicio "curso escolar",


alumno_se_matricula_asignatura.id_alumno,

COUNT(alumno_se_matricula_asignatura.id_alumno)

FROM curso_escolar ce

left JOIN alumno_se_matricula_asignatura

ON ce.id = alumno_se_matricula_asignatura.id_curso_escolar

GROUP BY ce.anyo_inicio

ORDER BY COUNT(alumno_se_matricula_asignatura.id_alumno);

4.i- SELECT p.id "ID Profesor",

p.nombre "Nombre Profesor",

p.apellido1 "Primer apellido",

p.apellido2 "Segundo apellido",

a.id "numero asignatura",

COUNT(a.id)

FROM asignatura a

left JOIN profesor p

ON a.id_profesor = p.id

GROUP BY p.id

ORDER BY COUNT(a.id) ASC;

5-Subconsultas
5.a- SELECT aa.nombre, aa.apellido1, aa.fecha_nacimiento

FROM alumno aa

WHERE aa.fecha_nacimiento = (SELECT MAX(a.fecha_nacimiento) FROM alumno a);

5.b- SELECT p.apellido1 "Primer Apellido",

p.apellido2 "Segundo Apellido",

p.nombre "Nombre Profesor",


d.nombre "Departamento"

FROM profesor p

LEFT JOIN departamento d

ON p.id_departamento = d.id

WHERE p.id_departamento NOT IN (SELECT profesor.id_departamento FROM profesor)

ORDER BY d.nombre, p.apellido1, p.apellido2, p.nombre;

5.c-SELECT departamento.nombre

FROM departamento

LEFT JOIN profesor

ON profesor.id_departamento=departamento.id

WHERE profesor.id NOT IN (SELECT departamento.id FROM departamento);

5.d-

5.e- SELECT asignatura.nombre

FROM asignatura LEFT JOIN profesor

ON asignatura.id_profesor=profesor.id

WHERE asignatura.id_profesor NOT IN (SELECT profesor.id FROM profesor);

5.f- SELECT

dep.id "ID Depa"

,dep.nombre "Departamento"

, asig.id "Id Asig"

, asig.nombre "Asignatura"

FROM departamento dep

INNER JOIN profesor p

ON dep.id = p.id_departamento

INNER JOIN asignatura asig

ON p.id = asig.id

LEFT JOIN (SELECT asig.id


FROM alumno_se_matricula_asignatura alumat, asignatura asig

WHERE alumat.id_asignatura = asig.id

AND asig.id = alumat.id_asignatura) lfj

ON lfj.id = asig.id

También podría gustarte