jueves, 29 de diciembre de 2011

Ejercicios refuerzo TEMA 3.Introduccion a SQL



1.        Con la tabla EMPLE calcula la media de los salarios de los registros del departamento ‘VENTAS’.

SELECT AVG(SALARIO) FROM EMPLE WHERE DEPT_NO=(SELECT DEPT_NO FROM DEPART
WHERE DNOMBRE='VENTAS')
/
2.        Visualiza los empleados del departamento de JIMENEZ.
SELECT * FROM EMPLE WHERE DEPT_NO IN(SELECT DEPT_NO FROM EMPLE WHERE APELLIDO='JIMENEZ')
/
3.        Visualiza los empleados con el mismo oficio que GIL.
SELECT * FROM EMPLE WHERE OFICIO IN(SELECT OFICIO FROM EMPLE WHERE APELLIDO='GIL')
/
4.        ¿Cuántos empleados hay en el departamento de ALONSO con el oficio de JIMENEZ?
SELECT COUNT(*) FROM EMPLE WHERE DEPT_NO=(SELECT DEPT_NO FROM EMPLE WHERE APELLIDO='ALONSO') AND (SELECT OFICIO FROM EMPLE WHERE APELLIDO= 'JIMENEZ')
/
5.        ¿Cuántos empleados hay en el departamento 10? (count(*))
SELECT COUNT(*) FROM EMPLE WHERE DEPT_NO=10
/

6.        Obtener los empleados que tienen una ‘o’ en su oficio en cualquier posición.
SELECT * FROM EMPLE WHERE OFICIO LIKE '%O%'
/

7.        Obtener los empleados que estén en el departamento 10 o en el 20.
SELECT * FROM EMPLE WHERE DEPT_NO IN(10,20)

8.        Obtener los temas que tienen más de 10 ejemplares.
SELECT TEMA FROM LIBRERIA WHERE EJEMPLARES>10
/
9.        ¿Quiénes son los empleados que ganan más en su oficio? (función Max.)
SELECT* FROM EMPLE E WHERE SALARIO=(SELECT MAX(SALARIO) FROM EMPLE WHERE OFICIO=E.OFICIO)
/
10.       ¿Quiénes son los empleados que ganan menos en su departamento? (función Min)
SELECT* FROM EMPLE E WHERE SALARIO=(SELECT MIN(SALARIO) FROM EMPLE WHERE DEPT_NO=E.DEPT_NO)
/
11.      ¿Qué alumnos han suspendido FOL?
SELECT * FROM ALUMNOS,ASIGNATURAS WHERE NOMBRE='FOL' AND DNI IN(SELECT DNI FROM NOTAS WHERE NOTA<5)
/
12.      ¿Qué alumnos han aprobado ‘Aplic. Entornos 4ªGen’?
SELECT*FROM ALUMNOS WHERE DNI =(SELECT DNI FROM NOTAS WHERE NOTA>=5 AND COD=(SELECT COD FROM ASIGNATURAS WHERE NOMBRE=
'Aplic. Entornos 4 Gen'))
/
13.      ¿Qué alumnos están matriculados en 1º?
SELECT * FROM ALUMNOS WHERE DNI =(SELECT DNI FROM NOTAS WHERE COD =(SELECT COD FROM ASIGNATURAS WHERE NOMBRE in ('prog.leng.estr.','sist.informaticos','analisis')))
/
14.      ¿Qué alumnos tienen asignaturas suspensas en 1º?
SELECT * FROM ALUMNOS WHERE DNI IN (SELECT DNI FROM NOTAS WHERE NOTA<5 AND COD IN
(SELECT COD FROM ASIGNATURAS WHERE NOMBRE IN ('ANALISIS','PROG.LENG.ESTRUCT','SIST.INFORMATICOS')))
/

15.      Visualiza los alumnos de Madrid que no tienen ninguna asignatura suspensa. (Observación: ¿Te sirve el ejercicio 12 de la página 73 del libro?)
SELECT * FROM ALUMNOS WHERE POBLA='Madrid' AND DNI IN (SELECT DNI FROM NOTAS WHERE NOTA<5)
/
16.      Busca los alumnos con asignaturas pendientes. Muestra además el nombre de la asignatura.
SELECT* FROM ALUMNOS AL,NOTAS N,ASIGNATURAS ASIG  WHERE AL.DNI=N.DNI AND ASIG.COD=N.COD AND N.NOTA<5
/
17.      Busca los alumnos que no tengan ninguna asignatura pendiente, muestra además todas sus notas, las asignaturas y ordenado por alumno.
SELECT* FROM ALUMNOS A,NOTAS N,ASIGNATURAS ASIG WHERE A.DNI=N.DNI AND ASIG.COD=N.COD AND N.DNI NOT IN(SELECT DISTINCT DNI FROM NOTAS WHERE NOTA<5)
/
18.      Busca las notas de alumnos suspensos de Madrid, su nombre, asignatura y nota.
SELECT * FROM ALUMNOS,NOTAS,ASIGNATURAS ASIG WHERE NOTA<5 AND POBLA='Madrid' AND ALUMNOS.DNI=NOTAS.DNI AND ASIG.COD=NOTAS.COD
/
19.      Obtener los artículos (PK: Articulo, Cod_fabricante, Peso, Categoria) que no tienen ni pedidos ni ventas.
SELECT ARTICULO, COD_FABRICANTE,PESO,CATEGORIA FROM ARTICULOS WHERE Cod_fabricante, Peso, Categoria NOT IN (SELECT Cod_fabricante, Peso, Categoria FROM PEDIDOS) AND Cod_fabricante, Peso, Categoria NOT IN (SELECT Cod_fabricante, Peso, Categoria FROM VENTAS)
/
20.      Obtener los artículos (PK: Articulo, Cod_fabricante, Peso, Categoria) que tienen pedidos y ventas
21.      Busca los artículos de fabricantes que tienen artículos vendidos. (tabla VENTAS)
SELECT ARTICULO,COD_FABRICANTE,PESO,CATEGORIA FROM ARTICULOS WHERE COD_FABRICANTE IN(SELECT COD_FABRICANTE FROM VENTAS)
/

No hay comentarios:

Publicar un comentario