Вы находитесь на странице: 1из 11

1. Obtened los datos completos de los empleados.

select * from empleados; +-------+--------+----------+------+------------+---------+---------+--------+ | empno | ename | job | mgr | hiredate | sal | comm | deptno | +-------+--------+----------+------+------------+---------+---------+--------+ | 7369 | SMITH | CLERK | 7902 | 1980-12-17 | 800.00 | NULL | 20 | | 7499 | ALLEN | SALESMAN | 7698 | 1981-02-20 | 1600.00 | 300.00 | 30 | | 7521 | WARD | SALESMAN | 7698 | 1981-02-22 | 1250.00 | 500.00 | 30 | | 7654 | MARTIN | SALESMAN | 7698 | 1981-09-28 | 1250.00 | 1400.00 | 30 | | 7788 | SCOTT | ANALYST | 7566 | 1982-12-09 | 3000.00 | NULL | 20 | | 7844 | TURNER | SALESMAN | 7698 | 1981-09-08 | 1500.00 | 0.00 | 30 | | 7876 | ADAMS | CLERK | 7788 | 1983-01-12 | 1100.00 | NULL | 20 | | 7900 | JAMES | CLERK | 7698 | 1981-12-03 | 950.00 | NULL | 30 | | 7902 | FORD | ANALYST | 7566 | 1981-12-03 | 3000.00 | NULL | 20 | | 7934 | MILLER | CLERK | 7782 | 1982-01-23 | 1300.00 | NULL | 10 | +-------+--------+----------+------+------------+---------+---------+--------+ 10 rows in set (0.04 sec) 2. Y ahora los de los departamentos. select * from dept; +--------+------------+----------+ | deptno | dname | loc | +--------+------------+----------+ | 10 | ACCOUNTING | NEW YORK | | 20 | RESEARCH | DALLAS | | 30 | SALES | CHICAGO | | 40 | OPERATIONS | BOSTON | +--------+------------+----------+ 4 rows in set (0.00 sec) 3. Hallar los datos de los administrativos. SELECT * FROM EMP WHERE JOB = 'CLERK'; +-------+--------+-------+------+------------+---------+------+--------+ | empno | ename | job | mgr | hiredate | sal | comm | deptno | +-------+--------+-------+------+------------+---------+------+--------+ | 7369 | SMITH | CLERK | 7902 | 1980-12-17 | 800.00 | NULL | 20 | | 7876 | ADAMS | CLERK | 7788 | 1983-01-12 | 1100.00 | NULL | 20 | | 7900 | JAMES | CLERK | 7698 | 1981-12-03 | 950.00 | NULL | 30 | | 7934 | MILLER | CLERK | 7782 | 1982-01-23 | 1300.00 | NULL | 10 | +-------+--------+-------+------+------------+---------+------+--------+ 4 rows in set (0.00 sec) 4. Idem. pero ordenados por el nombre. SELECT * FROM EMP WHERE JOB = 'CLERK' ORDER BY ENAME; +-------+--------+-------+------+------------+---------+------+--------+ | empno | ename | job | mgr | hiredate | sal | comm | deptno | +-------+--------+-------+------+------------+---------+------+--------+ | 7876 | ADAMS | CLERK | 7788 | 1983-01-12 | 1100.00 | NULL | 20 | | 7900 | JAMES | CLERK | 7698 | 1981-12-03 | 950.00 | NULL | 30 | | 7934 | MILLER | CLERK | 7782 | 1982-01-23 | 1300.00 | NULL | 10 | | 7369 | SMITH | CLERK | 7902 | 1980-12-17 | 800.00 | NULL | 20 | +-------+--------+-------+------+------------+---------+------+--------+ 4 rows in set (0.00 sec)

5. El mismo resultado que el anterior pero modificando de alguna forma la sentenc ia anterior. SELECT * FROM EMP WHERE JOB = 'CLERK' ORDER BY SAL; +-------+--------+-------+------+------------+---------+------+--------+ | empno | ename | job | mgr | hiredate | sal | comm | deptno | +-------+--------+-------+------+------------+---------+------+--------+ | 7369 | SMITH | CLERK | 7902 | 1980-12-17 | 800.00 | NULL | 20 | | 7900 | JAMES | CLERK | 7698 | 1981-12-03 | 950.00 | NULL | 30 | | 7876 | ADAMS | CLERK | 7788 | 1983-01-12 | 1100.00 | NULL | 20 | | 7934 | MILLER | CLERK | 7782 | 1982-01-23 | 1300.00 | NULL | 10 | +-------+--------+-------+------+------------+---------+------+--------+ 4 rows in set (0.00 sec) 6. Obtn el nombre y salario de los empleados. SELECT ENAME, SAL FROM EMP; +--------+---------+ | ENAME | SAL | +--------+---------+ | SMITH | 800.00 | | ALLEN | 1600.00 | | WARD | 1250.00 | | JONES | 2975.00 | | MARTIN | 1250.00 | | BLAKE | 2850.00 | | CLARK | 2450.00 | | SCOTT | 3000.00 | | KING | 5000.00 | | TURNER | 1500.00 | | ADAMS | 1100.00 | | JAMES | 950.00 | | FORD | 3000.00 | | MILLER | 1300.00 | +--------+---------+ 14 rows in set (0.00 sec) 7. Hallar el nombre de los departamentos. SELECT DNAME FROM DEPT; +------------+ | DNAME | +------------+ | ACCOUNTING | | RESEARCH | | SALES | | OPERATIONS | +------------+ 4 rows in set (0.00 sec) 8. Idem pero ordenados por el nombre. SELECT * FROM EMP ORDER BY ENAME; +-------+--------+-----------+------+------------+---------+---------+--------+ | empno | ename | job | mgr | hiredate | sal | comm | deptno | +-------+--------+-----------+------+------------+---------+---------+--------+ | 7876 | ADAMS | CLERK | 7788 | 1983-01-12 | 1100.00 | NULL | 20 |

| 7499 | ALLEN | SALESMAN | 7698 | 1981-02-20 | 1600.00 | 300.00 | 30 | | 7698 | BLAKE | MANAGER | 7839 | 1981-05-01 | 2850.00 | NULL | 30 | | 7782 | CLARK | MANAGER | 7839 | 1981-06-09 | 2450.00 | NULL | 10 | | 7902 | FORD | ANALYST | 7566 | 1981-12-03 | 3000.00 | NULL | 20 | | 7900 | JAMES | CLERK | 7698 | 1981-12-03 | 950.00 | NULL | 30 | | 7566 | JONES | MANAGER | 7839 | 1981-04-02 | 2975.00 | NULL | 20 | | 7839 | KING | PRESIDENT | NULL | 1981-11-17 | 5000.00 | NULL | 10 | | 7654 | MARTIN | SALESMAN | 7698 | 1981-09-28 | 1250.00 | 1400.00 | 30 | | 7934 | MILLER | CLERK | 7782 | 1982-01-23 | 1300.00 | NULL | 10 | | 7788 | SCOTT | ANALYST | 7566 | 1982-12-09 | 3000.00 | NULL | 20 | | 7369 | SMITH | CLERK | 7902 | 1980-12-17 | 800.00 | NULL | 20 | | 7844 | TURNER | SALESMAN | 7698 | 1981-09-08 | 1500.00 | 0.00 | 30 | | 7521 | WARD | SALESMAN | 7698 | 1981-02-22 | 1250.00 | 500.00 | 30 | +-------+--------+-----------+------+------------+---------+---------+--------+ 14 rows in set (0.00 sec) 9. Lo mismo pero ordenando por la ciudad. SELECT DNAME FROM DEPT ORDER BY LOC; +------------+ | DNAME | +------------+ | OPERATIONS | | SALES | | RESEARCH | | ACCOUNTING | +------------+ 4 rows in set (0.00 sec) 10. Hallar los nombres de los departamentos ordenados por su ciudad, pero en orde n inverso. Select dname from dept order by loc desc; +------------+ | dname | +------------+ | ACCOUNTING | | RESEARCH | | SALES | | OPERATIONS | +------------+ 4 rows in set (0.00 sec) 11. Obtener el nombre y empleo de los empleados, ordenado por salario. select ename, job from emp order by sal; +--------+-----------+ | ename | job | +--------+-----------+ | SMITH | CLERK | | JAMES | CLERK | | ADAMS | CLERK | | WARD | SALESMAN | | MARTIN | SALESMAN | | MILLER | CLERK | | TURNER | SALESMAN | | ALLEN | SALESMAN | | CLARK | MANAGER |

| BLAKE | MANAGER | | JONES | MANAGER | | FORD | ANALYST | | SCOTT | ANALYST | | KING | PRESIDENT | +--------+-----------+ 14 rows in set (0.00 sec) 12. Idem pero ordenando ahora por empleo y salario. select ename, job from emp order by sal, job; +--------+-----------+ | ename | job | +--------+-----------+ | SMITH | CLERK | | JAMES | CLERK | | ADAMS | CLERK | | WARD | SALESMAN | | MARTIN | SALESMAN | | MILLER | CLERK | | TURNER | SALESMAN | | ALLEN | SALESMAN | | CLARK | MANAGER | | BLAKE | MANAGER | | JONES | MANAGER | | FORD | ANALYST | | SCOTT | ANALYST | | KING | PRESIDENT | +--------+-----------+ 14 rows in set (0.00 sec) 13. Idem pero ordenando inversamente por empleo y normalmente por salario. SELECT ENAME, JOB FROM EMP ORDER BY JOB DESC, SAL; +--------+-----------+ | ename | job | +--------+-----------+ | WARD | SALESMAN | | MARTIN | SALESMAN | | TURNER | SALESMAN | | ALLEN | SALESMAN | | KING | PRESIDENT | | CLARK | MANAGER | | BLAKE | MANAGER | | JONES | MANAGER | | SMITH | CLERK | | JAMES | CLERK | | ADAMS | CLERK | | MILLER | CLERK | | FORD | ANALYST | | SCOTT | ANALYST | +--------+-----------+ 14 rows in set (0.00 sec) 14. Obtn los salarios y las comisiones de los empleados del departamento 30. SELECT SAL, COMM FROM EMP WHERE DEPTNO = 30; +---------+---------+

| SAL | COMM | +---------+---------+ | 1600.00 | 300.00 | | 1250.00 | 500.00 | | 1250.00 | 1400.00 | | 2850.00 | NULL | | 1500.00 | 0.00 | | 950.00 | NULL | +---------+---------+ 6 rows in set (0.00 sec) 15. Idem pero ordenando por comisin. SELECT SAL, COMM FROM EMP WHERE DEPTNO = 30 order by comm; +---------+---------+ | SAL | COMM | +---------+---------+ | 2850.00 | NULL | | 950.00 | NULL | | 1500.00 | 0.00 | | 1600.00 | 300.00 | | 1250.00 | 500.00 | | 1250.00 | 1400.00 | +---------+---------+ 6 rows in set (0.00 sec) 16. Obtn las comisiones. Luego las distintas comisiones. SELECT COMM; SELECT DISTINCT COMM; +---------+ | COMM | +---------+ | NULL | | 300.00 | | 500.00 | | NULL | | 1400.00 | | NULL | | NULL | | NULL | | NULL | | 0.00 | | NULL | | NULL | | NULL | | NULL | +---------+ 14 rows in set (0.01 sec) SELECT DISTINCT COMM FROM EMP;

17. Hallar las distintas comisiones y los nombres de los empleados. SELECT DISTINCT ENAME, COMM FROM EMP; +--------+---------+ | ENAME | COMM | +--------+---------+

| SMITH | NULL | | ALLEN | 300.00 | | WARD | 500.00 | | JONES | NULL | | MARTIN | 1400.00 | | BLAKE | NULL | | CLARK | NULL | | SCOTT | NULL | | KING | NULL | | TURNER | 0.00 | | ADAMS | NULL | | JAMES | NULL | | FORD | NULL | | MILLER | NULL | +--------+---------+ 14 rows in set (0.00 sec) 18. Hallar los distintos salarios y empleados. SELECT DISTINCT ENAME, SAL FROM EMP; +--------+---------+ | ENAME | SAL | +--------+---------+ | SMITH | 800.00 | | ALLEN | 1600.00 | | WARD | 1250.00 | | JONES | 2975.00 | | MARTIN | 1250.00 | | BLAKE | 2850.00 | | CLARK | 2450.00 | | SCOTT | 3000.00 | | KING | 5000.00 | | TURNER | 1500.00 | | ADAMS | 1100.00 | | JAMES | 950.00 | | FORD | 3000.00 | | MILLER | 1300.00 | +--------+---------+ 14 rows in set (0.00 sec) 19. Obtener las comisiones y los nmeros de departamento posibles de la empresa, de manera que no se repitan. SELECT DISTINCT COMM, DEPTNO FROM EMP; +---------+--------+ | COMM | DEPTNO | +---------+--------+ | NULL | 20 | | 300.00 | 30 | | 500.00 | 30 | | 1400.00 | 30 | | NULL | 30 | | NULL | 10 | | 0.00 | 30 | +---------+--------+ 7 rows in set (0.01 sec) 20. Obtenga los nuevos salarios que resultaran de sumar a los empleados del depart

amento 30 una gratificacin de 1000 unidades monetarias. select sal+1000 from emp where deptno=30; +----------+ | sal+1000 | +----------+ | 2600.00 | | 2250.00 | | 2250.00 | | 3850.00 | | 2500.00 | | 1950.00 | +----------+ 6 rows in set (0.00 sec) 21. Idem pero obteniendo tambin el salario anterior. select sal, sal+1000 from emp where deptno=30; +---------+----------+ | sal | sal+1000 | +---------+----------+ | 1600.00 | 2600.00 | | 1250.00 | 2250.00 | | 1250.00 | 2250.00 | | 2850.00 | 3850.00 | | 1500.00 | 2500.00 | | 950.00 | 1950.00 | +---------+----------+ 6 rows in set (0.00 sec) 22. Hallar los empleados que tienen una comisin superior a la mitad de su salario. SELECT ENAME FROM EMP WHERE COMM > (SAL/2); +--------+ | ENAME | +--------+ | MARTIN | +--------+ 1 row in set (0.00 sec) 23. Hallar los empleados cuya comisin es menor o igual que el 25% del sueldo. select ename from emp where (comm <=sal*0.25) or comm is null;

24. Haga que en cada fila figure 'Nombre ' y 'Puesto ' anteponindose a su respecti vo valor, pero usando slo tres expresiones. SELECT CONCAT (ename,job) FROM emp; 25. Hallar el salario y la comisin de los empleados cuyo nmero de empleado supera a 7500. select sal,comm from emp where empno>7500; 26. Si dividimos los empleados en dos grupos, A y B, empezando los del grupo B en

la letra J, obtn los nombres y empleos de los del grupo B, por orden alfabtico. select ename from emp where ename>="j" order by ename; 27. Obtener el salario, la comisin y el salario total (salario + comisin) de los em pleados con comisin, ordenado por nmero de empleado. select sal, comm, (sal+comm) from emp where comm is not null order by empno asc ; 28. Idem pero para los que no tienen comisin. select sal, comm, (sal) from emp where comm is null order by empno asc; 29. Hallar el nombre de los empleados que, teniendo un salario superior a 1000, t ienen como director al empleado de cdigo 7698. select ename, mgr from emp where sal > 1000 and mgr =7698; 30. Halla el conjunto complementario del resultado del ejercicio anterior. select ename, mgr from emp where sal <= 1000 and mgr =7698; 31. Hallar el porcentaje que supone la comisin sobre el salario total ordenando po r nombre. select (comm/(comm+sal)+100) from emp order by ename; 32. Hallar los empleados del departamento 10 cuyo nombre no contiene la cadena "L A". select emp from deptno=10 where ename 33. Obtn los empleados que no son supervisados por ningn otro. select ename, mgrfrom empwhere mgr is null 34. Obtn los nombres de los departamentos que no sean "SALES" ni "RESEARCH", orden ados por localidad. 35. Deseamos conocer el nombre y departamento de los administrativos que no traba jan en el departamento 10 y cuyo salario es superior a 800, ordenados por la fec ha de incorporacin. 36. Para los empleados que tienen comisin obtn sus nombres en orden alfabtico y el c ociente entre salario y comisin. 37. Obtn informacin de los empleados cuyo nombre contiene exactamente cinco caracte res. 38. Idem pero cuyos nombres contengan al menos cinco caracteres.

39. Halla los datos de los empleados para los que, su nombre comienza por A y su salario es mayor que 1000, o, reciben comisin y trabajan en el departamento 30. select ename, job, mgr, sal, deptno from emp where (ename like '[a]%' and sal>1 000) 40. Halla el nombre y salario total de todos los empleados ordenado por este ltimo y por su propio salario. select ename, sal+comm , sal from emp order by sal+comm, sal; 41. Obtn los nombres, salarios y comisiones de los empleados que perciben un salar io situado entre la mitad de la comisin y la propia comisin. select ename, sal, commfrom empwhere sal between comm/2 and commorder by comm 42. El complementario del anterior. 43. Intenta lograr los nombres y empleos de los empleados tales que su empleo aca ba en "MAN" y su nombre empieza por A. 44. Si te ha resultado muy fcil el anterior prueba a intentarlo con un predicado s imple. Supn que el nombre de un empleo tiene al menos cinco caracteres. 45. Halla los nombres de los empleados que tienen como mximo cinco caracteres en s u nombre. 46. Suponiendo que el ao prximo la subida del total percibido por empleado es del 6 % y el siguiente del 7%, hallar los nombres y salarios totales actuales y futuro s de todos los empleados, indicando para cada uno si tienen o no comisin. 47. Halla el nombre y la fecha de ingreso de los empleados que no son vendedores. 48. Obtn la informacin disponible de los empleados de nmero uno de los siguientes : 7844, 7900, 7521, 7782, 7934, 7678 y 7369, pero no uno de entre : 7902,7839,7499 ni 7878. El inters del ejercicio radica en que el predicado no debe ser muy exte nso. 49. Halla los salarios totales de todos los empleados. 50. Ordena los empleados por su departamento y luego de manera descendente por su nmero. 51. Para los empleados que tienen como director a algn otro con nmero mayor que el suyo, obtener los que reciben de salario ms de 1000 y menos de 2000, o estn en el departamento 30. 52. Obtn el salario ms alto de la empresa, el total destinado a comisiones y el nmer o de empleados. 53. Halla los datos de los empleados cuyo salario es mayor que el del empleado de cdigo 7934, ordenando por el propio salario. 54. Obtn informacin en la que se reflejen los nombres, empleos y salarios tanto de los que superan el salario de Allen como del propio Allen. 55. Halla el nombre del ltimo empleado por orden alfabtico.

56. Halla el salario ms alto, el ms bajo y la diferencia entre ellos. 57. Sin conocer los resultados del ejercicio anterior, quines reciben el salario ms alto y ms bajo, y a cunto ascienden?. 58. Halla la media de los salarios de los departamentos cuyo salario mnimo supera a 900, considerando los salarios inferiores a 5000. Adems se necesita el cdigo y e l nombre de los departamentos. 59. Qu empleados trabajan en ciudades que tienen ms de cinco letras?. Ordena el resu ltado inversamente por ciudades y normalmente por nombres de empleados. 60. Halla los empleados cuyo salario supera o coincide con la media del salario d e la empresa. 61. Obtn los empleados cuyo salario supera al de sus compaeros de departamento. 62. Cuntos empleos diferentes, empleados y diferentes salarios encontramos en el de partamento 30, y a qu cantidad asciende la suma de los salarios de dicho departam ento? 63. Cuntos empleados tienen comisin? 64. Cuntos empleados tiene el departamento 20?. 65. Halla los departamentos que tienen ms de tres empleados y el nmero de empleados de los mismos. 66. Obtn los empleados del departamento 10 que tienen el mismo empleo que alguien del departamento de "SALES" (o sea, desconocemos el cdigo del departamento "SALES "). 67. Halla los empleados que tienen por lo menos un empleado a su mando, ordenados inversamente por nombre. 68. Obtn informacin sobre los emp leados que tienen el mismo trabajo que los emplea dos que trabajan en Chicago. 69. Qu empleos distintos encontramos en la empresa y cuntos empleados desempean cada uno?. 70. Halla la suma de los salarios de cada departamento. 71. Obtn todos los d epartamentos sin empleados. 72. Halla los empleados que no tienen a otro empleado a sus rdenes. 73. Cuntos empleos hay en cada departamento y cul es la media anual del salario de c ada uno?. Indique el nombre del departamento para clarificar el resultado. 74. Halla los empleados del departamento 30 por orden descendente de comisin. 75. Obtn los empleados que trabajan en Dallas o en New York. 76. Obtn un listado en el que se reflejen el cdigo y el nombre de cada supervisor, junto al nmero de empleados que supervisa directamente. Fjese en que puede haber e mpleados que no tengan supervisores, as que para estos se indicar solamente el nmer o de ellos dejando los restantes valores a NULL. 77. Hllense los empleados con salario mayor de cada departamento. Se debe incluir

el salario y el nombre del departamento. 78. Hallar el departamento cuya suma de salarios sea la mas alta. Halla tambin la mencionada suma. 79. Cules son los dos empleados con los mayores salarios?. 80. Para cada departamento con al menos dos empleados y tal que la media del sala rio sea mayor que la media de los salarios de todos los empleados, hllense la sum a del salario, el cdigo y el nombre del departamento. 81. Determinar las localidades que no son sede de departamentos que no tienen emp leados, y en las que trabajan al menos cuatro empleados, indicando el nmero de em pleados que trabaja en cada una.

Вам также может понравиться