Está en la página 1de 10

Ejercicios – Adicionales – CAP4

====================================================
Se dispone de las siguientes tablas con los siguientes datos.

TABLA EMPLE

EMP_NO APELLIDO OFICIO DIR FECHA_ALT SALARIO COMISION DEPT_NO


Number(4) Varchar2(10) Varchar2(10) Number(4) Date Number (10) Number(10) Number(2)
7369 SANCHEZ EMPLEADO 7902 17/12/1990 1040 20
7499 ARROYO VENDEDOR 7698 20/02/1990 1500 390 30
7521 SALA VENDEDOR 7698 22/02/1991 1625 650 30
7566 JIMENEZ DIRECTOR 7839 02/04/1991 2900 20
7654 MARTIN VENDEDOR 7698 29/09/1991 1600 1020 30
7698 NEGRO DIRECTOR 7839 01/05/1991 3005 30
7782 CEREZO DIRECTOR 7839 09/06/1991 2885 10
7788 GIL ANALISTA 7566 09/11/1991 3000 20
7839 REY PRESIDENTE 17/11/1991 4100 10
7844 TOVAR VENDEDOR 7698 08/09/1991 1350 0 30
7876 ALONSO EMPLEADO 7788 23/09/1991 1430 20
7900 JIMENO EMPLEADO 7698 03/12/1991 1335 30
7902 FERNANDEZ ANALISTA 7566 03/12/1991 3000 20
7934 MUÑOZ EMPLEADO 7782 23/01/1992 1690 10

TABLA DEPART.

DEPT_NO DNOMBRE LOC


Number(2) Varchar2(14) Varchar2(14)
10 CONTABILIDAD SEVILLA
20 INVESTIGACION MADRID
30 VENTAS BARCELONA
40 PRODUCCION BILBAO

=====================================================================
Pág. 1
Ejercicios – Adicionales – CAP4
====================================================
1. Mostrar los datos de los empleados que pertenezcan al mismo departamento que ʻGILʼ.

SELECT * FROM EMPLE WHERE DEPT_NO=(SELECT DEPT_NO FROM EMPLE


WHERE APELLIDO=’GIL’);

2. Mostrar los datos de los empleados que tengan el mismo oficio que ʻCEREZOʼ. El
resultado debe ir ordenado por apellido.

SELECT * FROM EMPLE WHERE


OFICIO=(SELECT OFICIO FROM EMPLE WHERE APELLIDO=’CEREZO’)
ORDER BY APELLIDO ASC;

=====================================================================
Pág. 2
Ejercicios – Adicionales – CAP4
====================================================
3. Mostrar los empleados (nombre, oficio, salario y fecha de alta) que desempeñen el
mismo oficio que ʻJIMÉNEZʼ o que tengan un salario mayor o igual que ʻFERNÁNDEZʼ.

SELECT APELLIDO, OFICIO, SALARIO, FECHA_ALT FROM EMPLE WHERE


OFICIO=(SELECT OFICIO FROM EMPLE WHERE APELLIDO=’JIMENEZ’) OR
SALARIO>=(SELECT SALARIO FROM EMPLE WHERE APELLIDO=’FERNANDEZ’);

4. Mostrar en pantalla el apellido, oficio y salario de los empleados del departamento de


ʻFERNÁNDEZʼ que tengan su mismo salario.

SELECT APELLIDO, OFICIO, SALARIO FROM EMPLE WHERE SALARIO=(SELECT


SALARIO FROM EMPLE WHERE APELLIDO=’FERNANDEZ’) AND
DEPT_NO=(SELECT DEPT_NO FROM EMPLE WHERE APELLIDO=’FERNANDEZ’);

5. Mostrar los datos de los empleados que tengan un salario mayor que ʻGILʼ y que
pertenezcan al departamento número 10.

SELECT * FROM EMPLE WHERE SALARIO>(SELECT SALARIO FROM EMPLE


WHERE APELLIDO=’GIL’) AND DEPT_NO=’10’;

=====================================================================
Pág. 3
Ejercicios – Adicionales – CAP4
====================================================
6. Mostrar los apellidos, oficios y localizaciones de los departamentos de cada uno de los
empleados.

SELECT EMPLE.APELLIDO, EMPLE.OFICIO, DEPART.DNOMBRE “NOMBRE DEP.”,


DEPART.LOC “LOCALIZACION DEP.” FROM EMPLE, DEPART WHERE
EMPLE.DEPT_NO=DEPART.DEPT_NO;

7. Seleccionar el apellido, el oficio y la localidad de los departamentos donde trabajan los


ANALISTAS.

SELECT EMPLE.APELLIDO, EMPLE.OFICIO, DEPART.LOC “LOCALIDAD DEP.”


FROM EMPLE, DEPART WHERE EMPLE.DEPT_NO=DEPART.DEPT_NO AND
EMPLE.OFICIO=’ANALISTA’;

=====================================================================
Pág. 4
Ejercicios – Adicionales – CAP4
====================================================
8. Seleccionar el apellido, el oficio y salario de los empleados que trabajan en Madrid.

SELECT EMPLE.APELLIDO, EMPLE.OFICIO, EMPLE.SALARIO FROM EMPLE,


DEPART WHERE EMPLE.DEPT_NO=DEPART.DEPT_NO AND
DEPART.LOC=’MADRID’;

9. Seleccionar el apellido, salario y localidad donde trabajan de los empleados que tengan
un salario entre 2000 y 3000.

SELECT EMPLE.APELLIDO, EMPLE.SALARIO, DEPART.LOC FROM EMPLE, DEPART


WHERE EMPLE.DEPT_NO=DEPART.DEPT_NO AND EMPLE.SALARIO BETWEEN
2000 AND 3000;

10. Mostrar el apellido, salario y nombre del departamento de los empleados que tengan el
mismo oficio que ʻGILʼ.

SELECT EMPLE.APELLIDO, EMPLE.SALARIO, DEPART.DNOMBRE “NOMBRE


DEPT.” FROM EMPLE, DEPART WHERE EMPLE.DEPT_NO=DEPART.DEPT_NO AND
EMPLE.OFICIO=(SELECT EMPLE.OFICIO FROM EMPLE WHERE
EMPLE.APELLIDO=’GIL’);

=====================================================================
Pág. 5
Ejercicios – Adicionales – CAP4
====================================================
11. Mostrar el apellido, salario y nombre del departamento de los empleados que tengan el
mismo oficio que ʻGILʼ y que no tengan comisión.

SELECT EMPLE.APELLIDO, EMPLE.SALARIO, DEPART.DNOMBRE “NOMBRE


DEPT.” FROM EMPLE, DEPART WHERE EMPLE.DEPT_NO=DEPART.DEPT_NO AND
EMPLE.OFICIO=(SELECT EMPLE.OFICIO FROM EMPLE WHERE
EMPLE.APELLIDO=’GIL’) AND EMPLE.COMISION IS NULL;

12. Mostrar los datos de los empleados que trabajan en el departamento de contabilidad,
ordenados por apellidos.

SELECT * FROM EMPLE, DEPART WHERE EMPLE.DEPT_NO=DEPART.DEPT_NO


AND DEPART.DNOMBRE=’CONTABILIDAD’ ORDER BY EMPLE.APELLIDO ASC;

=====================================================================
Pág. 6
Ejercicios – Adicionales – CAP4
====================================================
13. Apellido de los empleados que trabajan en Sevilla y cuyo oficio sea analista o
empleado.

SELECT EMPLE.APELLIDO, EMPLE.OFICIO, DEPART.LOC “LOCALIZACIO DEP.”


FROM EMPLE, DEPART WHERE EMPLE.DEPT_NO=DEPART.DEPT_NO AND
DEPART.LOC=’SEVILLA’ AND (EMPLE.OFICIO=‘ANALISTA’ OR
EMPLE.OFICIO=‘EMPLEADO’);

14. Calcula el salario medio de todos los empleados.

SELECT AVG(SALARIO) FROM EMPLE;

15. ¿Cuál es el máximo salario de los empleados del departamento 10?

SELECT MAX(SALARIO) FROM EMPLE WHERE DEPT_NO=’10’;

16. Calcula el salario mínimo de los empleados del departamento 'VENTAS'.

SELECT MIN(EMPLE.SALARIO) FROM EMPLE, DEPART WHERE


EMPLE.DEPT_NO=DEPART.DEPT_NO AND DEPART.DNOMBRE=’VENTAS’;

=====================================================================
Pág. 7
Ejercicios – Adicionales – CAP4
====================================================
17. Calcula el promedio del salario de los empleados del departamento de
'CONTABILIDAD'.

SELECT AVG(EMPLE.SALARIO) FROM EMPLE, DEPART WHERE


EMPLE.DEPT_NO=DEPART.DEPT_NO AND DEPART.DNOMBRE=’CONTABILIDAD’;

18. Mostrar los datos de los empleados cuyo salario sea mayor que la media de todos los
salarios.

SELECT APELLIDO, OFICIO, SALARIO, DEPT_NO FROM EMPLE WHERE


SALARIO>(SELECT AVG(SALARIO) FROM EMPLE);

19. ¿Cuántos empleados hay en el departamento número 10?

SELECT COUNT(*) FROM EMPLE WHERE DEPT_NO=’10’;

=====================================================================
Pág. 8
Ejercicios – Adicionales – CAP4
====================================================
20. ¿Cuántos empleados hay en el departamento de 'VENTAS'?

SELECT COUNT(*) FROM EMPLE, DEPART WHERE


EMPLE.DEPT_NO=DEPART.DEPT_NO AND DEPART.DNOMBRE=’VENTAS’;

21. Calcula el número de empleados que hay que no tienen comisión.

SELECT COUNT(*) FROM EMPLE WHERE COMISION IS NULL;

22. Seleccionar el apellido del empleado que tiene máximo salario.

SELECT APELLIDO, SALARIO FROM EMPLE WHERE SALARIO=(SELECT


MAX(SALARIO) FROM EMPLE);

23. Mostrar los apellidos del empleado que tiene el salario más bajo.

SELECT APELLIDO, SALARIO FROM EMPLE WHERE SALARIO=(SELECT


MIN(SALARIO) FROM EMPLE);

=====================================================================
Pág. 9
Ejercicios – Adicionales – CAP4
====================================================
24. Mostrar los datos del empleado que tiene el salario más alto en el departamento de
'VENTAS'.

SELECT * FROM EMPLE, WHERE EMPLE.SALARIO=(SELECT MAX(EMPLE.SALARIO)


FROM EMPLE, DEPART WHERE EMPLE.DEPT_NO=DEPART.DEPT_NO AND
DEPART.DNOMBRE=’VENTAS’);

25. A partir de la tabla EMPLE visualizar cuántos apellidos de los empleados empiezan por
la letra ʻA'.

SELECT APELLIDO FROM EMPLE WHERE APELLIDO LIKE(‘A%’);

26. Dada la tabla EMPLE, obtener el sueldo medio, el número de comisiones no nulas, el
máximo sueldo y el sueldo mínimo de los empleados del departamento 30.

SELECT AVG(SALARIO), COUNT(COMISION), MAX(SALARIO), MIN(SALARIO) FROM


EMPLE WHERE DEPT_NO=’30’;

=====================================================================
Pág. 10

También podría gustarte