Você está na página 1de 10

CONSULTAS SQL 1.

- Mostrar los datos de todas las carreras que se estn impartiendo en este periodo: SELECT C.NOMBREC AS "Nombre Carrera", P.Semestrep "Semestre", p.anop "ao" FROM carrera c INNER JOIN (asignatura a inner join ( asignatura_periodo ap inner join periodo p ON (p.idp=ap.idp)) ON (ap.ida=a.ida)) ON (a.idc=c.idc) WHERE p.anop=2008 and p.semestrep='primavera'; 2.- Entregar los nombres de todas las ingenerias: SELECT nombrec AS "Nombre Carrera" FROM carrera WHERE nombrec like 'Ing%'; 3.- Entregar los datos de todas las carreras cuya duracin es mayor a 3 aos. SELECT nombrec AS "Nombre Carrera", duracionc "Duracion" FROM carrera where duracionc>3; 4.- Desplegar los datos de la carrera, con su duracin en aos y semestres. SELECT nombrec AS "Nombre Carrera", duracionc "Semestre", (duracionc)/2 "AO" FROM carrera; 5.- Mostrar el periodo actual que est cursando la Universidad SELECT semestrep AS "Semestre Actual", anop "Ao" FROM periodo WHERE anop=2008; 6.- Entregar el nombre de todas las carreras que exijan entre 200 y 600 crditos
para la aprobacin.

SELECT nombrec AS "Nombre Carrera", creditosc "Credito" FROM carrera WHERE creditosc BETWEEN 200 and 600; 7.- Entregar todas las Asignaturas que se imparten en este periodo, en las
carreras de Ing. Mecnica, Ing. Agrcola, Ing. Forestal e Ing. Informtica. SELECT a.nombrea AS "Nombre Asignatura" FROM carrera c INNER JOIN (asignatura a INNER JOIN (periodo p INNER JOIN asignatura_periodo ap ON (p.idp=ap.idp)) ON (ap.ida=a.ida)) ON (c.idc=a.idc) WHERE p.semestrep='primavera' and p.anop=2008; 8.- Entregar la Cantidad de Ing. Civiles de la Universidad. SELECT COUNT(*) AS "Cantidas de Ingenerias Civiles"

FROM carrera WHERE nombrec like 'Ing%Civil%'; 9.- Entregar los datos de los alumnos. Ordenados por el nombre de la carrera que estudian. SELECT al.runal AS "RUN", al.nombreal "Nombre Alumno", c.nombrec "Carrera" FROM alumno al INNER JOIN carrera c ON (al.idc=c.idc) ORDER BY c.nombrec; 10.- Entregar los datos de todos los alumnos que llevan ms de un 50% de los crditos que exige su carrera.

select a.nombreal, c.creditos, sum (s.creditosa) from carrera c inner join alumno a on (a.idc=c.idc) inner join alumno_asignatura_docente aad on (a.idal=aad.idal) inner join asignatura s on (s.ida=aad.ida) where aad.situacionaad='A' group by a.nombreal, c.creditos having sum(s.creditosa)>=(c.creditos/2); 11.- Entregar la cantidad de alumnos por carrera. SELECT c.idc AS "Codigo Carrera", c.nombrec "Carrera", count(*) "cantidad alumnos" FROM alumno al INNER JOIN carrera c ON (al.idc=c.idc) GROUP BY c.idc, c.nombrec; 12.- Entregar la cantidad de alumnos por carrera siempre y cuando la carrera no
sea una ingeniera.

SELECT c.nombrec AS "Nombre Carrera", count(*) "Cantidad Alumnos" FROM alumno al INNER JOIN carrera c ON (al.idc=c.idc) HAVING c.nombrec not like 'ingenieria%' GROUP BY c.nombrec; 13.- Entregar la cantidad de alumnos totales que ha congelado por carrera SELECT c.nombrec "Carrera", al.situacional AS "Situacion", count (*) AS "Cantidad Alumnos" FROM alumno al INNER JOIN carrera c ON (al.idc=c.idc) HAVING al.situacional='congelado' GROUP BY c.nombrec, al.situacional; 14.- Entregar el nombre de todos los docentes que trabajan para cualquier
carrera relacionada con Farmacia. SELECT d.nombred AS "Nombre Docente", c.nombrec "Carrera" FROM docente d INNER JOIN (Asignatura_docente ad INNER JOIN (asignatura a INNER JOIN carrera c ON (a.idc=c.idc)) ON (ad.ida=a.ida)) ON (d.idd=ad.idd) where c.nombrec like '%Farmacia%';

*15.- Entregar los datos de todos los alumnos que tienen ms de 6 asignaturas en este semestre. SELECT al.nombreal AS "Nombre Alumno", count(*) "Cantidad de asignatura" FROM alumno al INNER JOIN (carrera c INNER JOIN asignatura a ON (c.idc=a.idc)) ON (c.idc=al.idc) HAVING count(*)>6 GROUP BY al.nombreal;

16.- Indicar la cantidad de alumnos que han aprobado con el profesor G.


LLotine.

SELECT count(*) AS "Aprobados" FROM alumno_asignatura_docente aad INNER JOIN docente d ON (aad.idd=d.idd) WHERE aad.situacionaad='aprobado' and d.nombred='llotine'; 17.- Mostrar todas las carreras que imparten ingles. SELECT c.nombrec AS "Nombre Carrera", a.nombrea "Asignatura" FROM carrera c INNER JOIN asignatura a ON (c.idc=a.idc) WHERE a.nombrea like 'Ingles%'; *18.- mostrar todas las carreras que tienen ms de 3 matemticas (incluidas
matemticas, lgebras lineales, clculo).

SELECT c.nombrec AS "Nombre Carrera", a.nombrea "Asignatura",count(*) "Cantidad de Matematicas" FROM carrera c INNER JOIN asignatura a ON (c.idc=a.idc) WHERE a.nombrea LIKE 'Matematica%' OR LIKE 'Algebra%' OR LIKE 'calculo%' GROUP BY c.nombrec; *19.- Mostrar la cantidad de alumnos aprobados y reprobados en asignaturas
como Fsica, Qumica y Clculo 3.

SELECT a.nombrea AS "Asignatura", aad.situacionaad "Situacion" FROM asignatura a INNER JOIN alumno_asignatura_docente aad ON (a.ida=aad.ida) where a.nombrea in ('fisica','quimica','calculo') GROUP BY a.nombrea, aad.situacionaad; *20.- determinar el promedio de todos los alumnos que cursan "Base de Datos
3" en este semestre.

SELECT a.nombrea AS "Asignatura", AVG(aad.promedioaad) "Promedio" FROM asignatura a INNER JOIN (alumno_asignatura_docente aad INNER JOIN periodo p ON (aad.idp=p.idp)) ON (a.ida=aad.ida) WHERE a.nombrea='base de datos 3' and p.semestrep='primavera' and p.anop=2008 GROUP BY a.nombrea;

21.- Mostrar el total de crditos de cada alumno para las carreras relacionadas con Informtica.

select a.nombreal,c.nombrec, sum(creditosa) from alumno a inner join alumno_asignatura_docente al on (a.idal=al.idal) inner join asignatura s on (s.ida=al.ida) inner join carrera c on (c.idc=a.idc) where al.situacionaad='A' and lower(c.nombrec) like '%info%' group by a.nombreal, c.nombrec; 22.- Desplegar los siguientes datos relacionados: Nombre Carrera, Nombre
Asignatura, Periodo, Nombre Docente.

SELECT c.nombrec AS "Carrera", a.nombrea "Asignatura", p.semestrep "Semestre", p.anop "Ao", d.nombred "Docente" FROM carrera c INNER JOIN asignatura a ON (c.idc=a.idc) INNER JOIN asignatura_periodo ap ON (a.ida=ap.ida) INNER JOIN periodo p ON (ap.idp=p.idp) INNER JOIN alumno_asignatura_docente aad ON (p.idp=aad.idp) INNER JOIN docente d ON (aad.idd=d.idd); 23.- Desplegar todas las asignaturas que no estn asignadas a ninguna carrera SELECT * FROM asignatura WHERE idc IS NULL; 24.- Entregar los datos de todos los alumnos que han reprobado ms de una asignatura SELECT * FROM alumno al WHERE 1<(select count(aad.ida) FROM alumno_asignatura_docente aad WHERE situacionaad='reprobado'); 25.- Entregar las estadsticas para las asignaturas, en base a sus aprobados, reprobados, Inscritos. SELECT a.nombrea AS "Nombre Asignatura", aad.situacionaad "Situacion" FROM asignatura a INNER JOIN alumno_asignatura_docente aad ON (a.ida=aad.ida) GROUP BY a.nombrea, aad.situacionaad; 26.- mostrar los nombres de todos los alumnos que no han rendido la segunda prueba de "Ingles 32", para la carrera de Ingeniera en Computacin. SELECT al.nombreal AS "Nombre Alumno" FROM carrera c INNER JOIN asignatura a ON (c.idc=a.idc) INNER JOIN alumno_asignatura_docente aad ON (a.ida=aad.ida) INNER JOIN alumno al ON (aad.idal=al.idal) INNER JOIN notas n ON (al.idal=n.idal) WHERE n.numeron=2 and c.nombrec='Ingenieria en Computacion' and a.nombrea='Ingles 32';

27.- Mostrar el listado de alumnos que han reprobado por asistencia la asignatura de "Pensamientos Profundos 4". SELECT al.nombreal AS "Nombre Alumno", a.nombrea "Asignatura", aad.asistenciaaad "Asistencia" FROM carrera c INNER JOIN asignatura a ON (c.idc=a.idc) INNER JOIN alumno_asignatura_docente aad ON (a.ida=aad.ida) INNER JOIN alumno al ON (aad.idal=al.idal) WHERE a.nombrea='Pensamientos Profundos 4' and aad.asistenciaaad<80;

28.- Mostrar la cantidad de alumnos que ha aprobado en cada carrera por cada asignatura. SELECT c.nombrec AS "Nombre Carrera", count (aad.situacionaad) "Cantidad de Aprobados" FROM carrera c INNER JOIN alumno al ON (c.idc=al.idc) INNER JOIN alumno_asignatura_docente aad ON (al.idal=aad.idal) WHERE aad.situacionaad='A' GROUP BY c.nombrec; 29.- Entregar la mortandad por periodo. SELECT c.nombrec AS "Nombre Carrera", count (aad.situacionaad) "Cantidad de Reprobados" FROM carrera c INNER JOIN alumno al ON (c.idc=al.idc) INNER JOIN alumno_asignatura_docente aad ON (al.idal=aad.idal) WHERE aad.situacionaad='R' GROUP BY c.nombrec; *30.- Indicar el promedio de alumnos por periodo entre el 1973 y el 2008 para la carrera de "Mantenimiento de AT-AT y otras maquinarias pesadas" SELECT c.nombrec AS "Nombre Carrera", AVG(aad.promedioaad) "Promedio" FROM carrera c INNER JOIN asignatura a ON (c.idc=a.idc) INNER JOIN alumno_asignatura_docente aad ON (a.ida=aad.ida) INNER JOIN periodo p ON (aad.idp=p.idp) WHERE a.nombrea='Mantenimineto de AT-AT y otras maquinarias pesadas" AND p.anop BETWEEN 1973 AND 2008 GROUP BY p.anop;

31.- Desplegar el nombre de todos los docentes que tienen menos de 3


asignaturas este Periodo.

SELECT d.nombred AS "Nombre Docente", count(a.ida) "Cantidad de asignatura FROM docente d INNER JOIN alumno_asignatura_docente aad ON (d.idd=aad.idd) INNER JOIN periodo p ON (aad.idp=p.idp) INNER JOIN asignatura_periodo ap ON (p.idp=ap.idp) INNER JOIN asignatura a ON (ap.ida=a.ida) WHERE p.semestrep='primavera' AND p.anop=2008 HAVING count(a.ida)<3

GROUP BY d.nombred; 32.- Entregar los datos de todas las asignaturas que tienen ms de 25 alumnos. SELECT a.nombrea AS "Asignatura", count(al.idal) FROM asignatura a INNER JOIN alumno_asignatura_docente aad ON (a.ida=aad.ida) INNER JOIN alumno al ON (aad.idal=al.idal) HAVING count(al.idal)>25 GROUP BY a.nombrea; 33.- el promedio de todas las notas de matemticas en el periodo otoo 2004 a
primavera 2007.

FORMA1: SELECT AVG(aad.promedioaad) AS "Promedio Aos 2004 y 2007" FROM periodo p INNER JOIN alumno_asignatura_docente aad ON (p.idp=aad.idp) INNER JOIN asignatura a ON (aad.ida=a.ida) WHERE (p.semestrep='otoo'and p.anop=2004) and (p.semestrep='primavera' and p.anop=2007); 33.1.FORMA2: SELECT AVG(n.valornota) AS "Promedio Aos 2004 y 2007" FROM asignatura a INNER JOIN notas n ON (a.ida=n.ida) INNER JOIN periodo p ON (n.idp=p.idp) WHERE (p.semestrep between 'otoo' and 'primavera') and (p.anop between 2004 and 2007) and (a.nombrea='Matematicas'); 34.- El total de asignaturas cursadas por el alumno Adamadiel Nispero. SELECT al.nombreal AS "Nombre Alumno", count(a.ida) FROM alumno al INNER JOIN alumno_asignatura_docente aad ON (al.idal=aad.idal) INNER JOIN asignatura a ON (aad.ida=a.ida) WHERE al.nombreal='Adamadiel Nispero' GROUP BY al.nombreal; 35.- Desplegar todas las asignaturas de los alumnos con apellido Prez. SELECT al.nombreal AS "Nombre Alumno", a.nombrea "Asignatura" FROM alumno al INNER JOIN alumno_asignatura_docente aad ON (al.idal=aad.idal) INNER JOIN asignatura a ON (aad.ida=a.ida) WHERE al.nombreal LIKE LOWER( '%Perez%'); 36.- Nota final en cada asignatura para el alumno apellido Gutirrez que estudia
Cocina Internacional.

SELECT al.nombreal AS "Nombre Alumno", a.nombrea "Asignatura", aad.promedioaad "Promedio" FROM alumno al INNER JOIN alumno_asignatura_docente aad ON (al.idal=aad.idal) INNER JOIN asignatura a ON (aad.ida=a.ida)

WHERE al.nombreal like '%Gutierrez%' AND a.nombrea='cocina internacional'; 37.- Entregar los datos de todos los alumnos que estudiaron ms de una carrera. SELECT al.nombreal AS "Nombre Alumno", c.idc "Codigo Carrera", c.nombrec "Nombre Carrera", count(c.idc) AS "Cantidad Carrera" FROM alumno al INNER JOIN carrera c ON (al.idc=c.idc) HAVING count(c.idc)>1 GROUP by al.nombreal, c.idc, c.nombrec; 38.- Nombre de los Docentes de informtica ordenados por Titulo. SELECT d.nombred AS "Nombre Docente", d.titulod "Titulo" FROM docente d INNER JOIN asignatura_docente ad ON (d.idd=ad.idd) INNER JOIN asignatura a ON (ad.ida=a.ida) INNER JOIN carrera c ON (a.idc=c.idc) WHERE c.nombrec like '%inf%' ORDER BY d.titulod; 39.- Cantidad de Alumnos que estn en Anlisis de Algoritmos por Tercera
oportunidad

SELECT a.nombrea AS "Asignatura", count(al.idal) "Cantidad Alumnos" FROM alumno al INNER JOIN alumno_asignatura_docente aad ON (al.idal=aad.idal) INNER JOIN asignatura a ON (aad.ida=a.ida) WHERE a.nombrea='Analisis de Algoritmo' and aad.oportunidadaad=3 GROUP BY a.nombrea; *40.- Desplegar todas las asignaturas de este periodo y el total de alumnos de
cada una, cada asignatura debe ir con su respectivo docente. SELECT a.nombrea AS "Asignatura", d.nombred "Docente", count(al.idal) FROM docente d INNER JOIN alumno_asignatura_docente aad ON (d.idd=aad.idd) INNER JOIN asignatura a ON (aad.ida=a.ida) INNER JOIN asignatura_periodo ap ON (a.ida=ap.ida) INNER JOIN periodo p ON (ap.idp=p.idp) WHERE p.semestrep='primavera' and p.anop=2008; 41.- Todos los alumnos de La Serena y Coquimbo que no estudian Medicina SELECT al.nombreal AS "Nombre Alumno", c.nombrec "Carrera" FROM alumno al INNER JOIN carrera c ON (al.idc=c.idc) WHERE c.nombrec not like 'Medicina' and al.direccional like 'La_Serena%' and al.direccional like 'Coquimbo%'; 42.- Todos los alumnos que estn por terminar su carrera. SELECT nombreal AS "Nombre Alumno", situacional "Situacion" FROM alumno WHERE situacional='tesis'; 42.- Las 10 mejores notas de la universidad en primavera 2008.

SELECT al.nombreal AS "Nombre Alumno", n.valornota AS "Las Mejores Notas" FROM alumno al INNER JOIN notas n ON (al.idal=n.idal) INNER JOIN periodo p ON (n.idp=p.idp) WHERE p.semestrep='primavera' and p.anop=2008 and n.valornota>6 ORDER BY n.valornota; 43.- Las 5 carreras con las mejores notas. SELECT c.nombrec AS "Nombre Carrera", al.nombreal "Nombre Alumno", n.valornota AS "Notas" FROM carrera c INNER JOIN alumno al ON (c.idc=al.idc) INNER JOIN notas n ON (al.idal=n.idal) WHERE n.valornota>7 ORDER BY n.valornota; 44.- El Docente con el mayor ndice de reprobacin SELECT d.nombred AS "Nombre Docente", count(aad.situacionaad) "Cantidad Reprobados" FROM docente d INNER JOIN alumno_asignatura_docente aad ON (d.idd=aad.idd) WHERE aad.situacionaad='R' GROUP BY d.nombred; 45.- El Docente con el menor ndice de reprobacin SELECT d.nombred AS "Nombre Docente", count(aad.situacionaad) "Cantidad Reprobados" FROM docente d INNER JOIN alumno_asignatura_docente aad ON (d.idd=aad.idd) WHERE aad.situacionaad='R' GROUP BY d.nombred; 46.- La desviacin estndar de las notas de francs, Ingls y Alemn entre los aos 2000 y 2007. SELECT a.nombrea AS "Nombre Asignatura", STDDEV(aad.promedioaad) "Desviacion Estandar" FROM asignatura a INNER JOIN alumno_asignatura_docente aad ON (a.ida=aad.ida) INNER JOIN periodo p ON (aad.idp=p.idp) WHERE (a.nombrea='ingles' OR a.nombrea='frances' OR a.nombrea='aleman') AND (p.anop BETWEEN 2000 AND 2007) GROUP BY a.nombrea; 47.- La desviacin estndar de las notas para las mismas asignaturas, pero por carrera y periodo. SELECT a.nombrea AS "Nombre Asignatura", c.nombrec "Nombre Carrera", STDDEV(aad.promedioaad) "Desviacion Estandar" FROM carrera c INNER JOIN asignatura a ON (c.idc=a.idc) INNER JOIN alumno_asignatura_docente aad ON (a.ida=aad.ida) INNER JOIN periodo p ON (aad.idp=p.idp) WHERE (a.nombrea='ingles' OR a.nombrea='frances' OR a.nombrea='aleman') AND (p.anop BETWEEN 2000 AND 2007)

GROUP BY a.nombrea, c.nombrec; 48.- Nombre de todas las asignaturas que coinciden en horario con la sala 1002. SELECT d.nombred AS "Docente", a.nombrea "Asignatura", ad.aulaad "Sala" FROM docente d INNER JOIN asignatura_docente ad ON (d.idd=ad.idd) INNER JOIN asignatura a ON (ad.ida=a.ida) WHERE ad.aulaad=1002; 49.- Mostrar a todos los "cuatreros" de Informtica. SELECT al.nombreal AS "Nombre Alumno", n.valornota "Nota" FROM alumno al INNER JOIN notas n ON (al.idal=n.idal) INNER JOIN asignatura a ON (n.ida=a.ida) INNER JOIN carrera c ON (a.idc=c.idc) WHERE (n.valornota between 4.0 and 4.9) and c.nombrec like '%Infor%'; 50.- Entregar la cantidad de alumnos por Rango de Nota, ej.: de 1 a 2, de 2.1 a 3, de 3.1 a... SELECT n.valornota AS "Nota", count(al.idal) "Cantidad" FROM alumno al INNER JOIN notas n ON (al.idal=n.idal) WHERE ((n.valornota BETWEEN 1 AND 2) OR (n.valornota BETWEEN 2.1 AND 3) OR (n.valornota BETWEEN 3.1 AND 4) OR (n.valornota BETWEEN 4.1 AND 5) OR (n.valornota BETWEEN 5.1 AND 6) OR (n.valornota BETWEEN 6.1 AND 7)) GROUP BY al.nombreal, n.valornota;

51.- Mostrar todas las asignaturas que no se dictan en los semestres de primavera. SELECT a.nombrea AS "Nombre Asignatura" FROM asignatura a INNER JOIN asignatura_periodo ap ON (a.ida=ap.ida) INNER JOIN periodo p ON (ap.idp=p.idp) WHERE p.semestrep<>'primavera' AND p.anop<>2008; 52.- Mostrar todas las asignaturas que posiblemente se cierren por tener menos de 8 alumnos. SELECT a.nombrea AS "Nombre Asignatura", count(al.idal) FROM asignatura a INNER JOIN alumno_asignatura_docente aad ON ( a.ida=aad.ida) INNER JOIN alumno al ON (aad.idal=al.idal) HAVING count(al.idal)<8 GROUP BY a.nombrea; 53.- Mostrar el Horario del docente "Sr. V. Matadero". SELECT ad.diasad AS "Dias", ad.aulaad "Sala o Aula" FROM docente d INNER JOIN asignatura_docente ad ON (d.idd=ad.idd) WHERE d.nombred like '%Matadero%'; 54.- Entregar el nombre de todos los docentes ajenos a la regin. SELECT nombred AS "Nombre Docente", direcciond "Direccion" FROM docente WHERE (direcciond not like '%serena%') and (direcciond not like '%coquimbo%') GROUP BY nombred, direcciond;

55.- Entregar el nombre de las tres carreras que tienen mayor cantidad de egresados SELECT c.nombrec AS "Nombre Carrera", count(al.situacional) FROM carrera c INNER JOIN alumno al ON (c.idc=al.idc) WHERE al.situacional='E' GROUP BY c.nombrec; 56.- Entregar el promedio de alumnos aprobados en La Serena y Coquimbo SELECT al.direccional AS "Direccion", AVG(aad.promedioaad) "Promedio" FROM alumno al INNER JOIN alumno_asignatura_docente aad ON (al.idal=aad.idal) WHERE al.direccional like '%serena%' and al.direccional like '%coquimbo%' and situacionaad='A' GROUP BY al.direccional; 57.- Entregar la nota ms alta por cada asignatura que se dict durante este ao. SELECT a.nombrea AS "Nombre Asignatura", max(n.valornota) "Nota Maxima" FROM asignatura a INNER JOIN notas n ON (a.ida=n.ida) INNER JOIN periodo p ON (n.idp=p.idp) WHERE p.anop=2008 GROUP BY a.nombrea; 58.- El Nombre de todos los alumnos que estn en trabajo de titulo. SELECT nombreal AS "Nombre Alumno", situacional "Situacion" from alumno WHERE situacional='Tesis'; 59.- la asistencia de todos los alumnos de informtica a la asignatura de "Como prepararme para el futuro 2". SELECT al.nombreal AS "Nombre Alumno", aad.asistenciaaad "Asistencia" FROM alumno al INNER JOIN alumno_asignatura_docente aad ON (al.idal=aad.idal) INNER JOIN asignatura a ON (aad.ida=a.ida) INNER JOIN carrera c ON (a.idc=c.idc) WHERE c.nombrec like '%Infor%' and a.nombrea='Como prepararme para el futuro 2';

Você também pode gostar