Está en la página 1de 21
PRACTICAS SQL (Usuario SCOTT) 7.___ Verlas tablas del esquema SCOTT seuect * FROW cat 2. __ Seleccionar todas las columnas de la tabla de empledos Senger « FROM emp; 3. ‘Seleccionar el nombre, oficio, sueldo y Comision de los empleados (usar alias) SELECT ename nombre, job oficio, sal Salario, comm comision FROM emp: 4, Calcular cuantas semanas completas ha trabajado cada empleado SELECT ename nonbre, FLOOR (sysdate-biredate)/7) semanas FROM emp; O también: SELECT ename nombre, TRUNC((sysdate-hiredate) /7) semanas FROM emp; §. —~ Calcular el sueldo neto de cada empieado, y ia retencion IRPF mensual, sabiendo que la retencion és del 19% para el sueldo y de un 10% de la comisién, (redondear a 2 decimales) SELECT ename nombre, sal salario, NVI (comm, 0) comision, ROUND {(sal*0.19) + (nv (comm, 0) *0,10),2) "Retenclon IRPF*, (seltnvi (comm, 0)~ ROOND {{sa1*0.19)+ {avi (comm, 0)*0.10),2}} "Sueldo Neto” FROM emp; 6. Hacer un listado de empleados con sueldo superior a 1000 SELECT onano nombre, sal salazio FROM emp twHERE 9@1>10007 7. Hacer un listado de empleados (nombre, oficio, sueldo, comision) que tengan oficio igual a ‘CLERK SELECT enane nonbre, job oficio, gal salario,nvl (cama, 0) comision FROM emp WHERE. 3ob="CLERK? ‘8 ___ Hacer un listado de empleados (nombre, oficio, sueldo, comision) que tengan ofcio distinio a CLERK’ SELECT enane nombre, job oficio, sal salario,nvl {conm,0) comision FROW em WHERE NOT job='CLBRK’ [WHERE job<>‘CLERK"] 9. Hacer un listado de empleados (nombre, oficio, sueldo, comision) que tengan oficio "CLERK ’ y sueldo superior a 1500 select enane nonbre, job oficio, sal salario,nvi (comm,0) comlsiox Econ emp where job<>'CLERK* and sal>1500; 10, Hacer un listado de empleados (nombre, oficio, sueldo, comision) que tengan asignada comision SBLECT enane nombre, job oficio, sal salario, com comision FROM exp WHERE comm 28 NOT NOLL; 11. Hacer un listado de empleados (nombre, oficio, sueldo, comision) que NO tengan asignada comision SELECT enane nonbre, job oficio,sal salario,conm comision FROM onp WRERE comm 18 NOLL: 12. Seleccionar los empleados cuyo nombre empieza por ‘A’ SELECT ename nombre FROW emp WHERE ename LIKE ‘AR': 13. Seleccionar los empieados cuyo nombre tienen una A en cualquier posicion SELECT ename nombre FROM emp WHERE ensme LIKE ‘SAS; ‘Seleccionar los empleados cuyo nombre no contiene ninguna ‘A’ fehane nombre FROM eno WHERE onane NOT LIKE "a8"s 18. Seleccionar los empleados cuyo nombre empieza por una vocal SELECT ena©e nombre FROM om WHBRE onama LIKE ‘A$" OR enane LIKE "3" OR ename LIKE "1g" OR ename LIKE ‘08? OR ename LIKE "Ub"; 16. ___ Seleccionar los empleados con sueldo entre 1000 y 2000 (ambos inclusive) SELECT enane nonbre,eal salario FROM emp. WHERE sal BETWEEN 2000 AND 20007 47. Seleccionar ios empieados con sueldo igual a 1000, 2000, 3000, 4000 6 5000 SELECT ename nombre, sal salario RON emp WHERE sal 1N(1000, 2000, 3000, 4000, 5000) + © tambien SELECT ename nombre, sal salario FROM emp WHERE. 9a1~L090 OR 2a1-2000 OR 221-3000 OR 221-4000 OR 221-5000; 18. Seleccionar los empleados cuyo nombre comienza por A.B\C.J,KM SELECT enane nombre, 2a! salario ERON enp WHERE SCBSTR(ename,1,2) IN (1A, 14,41, 106, °K, Mh) 7 19. Seleccionar los empleados cuyo sueldo es la 5000/2 + 500 6 5000-1000 SELECT ename nombre, sal salario FROM emp WIBRE sal IN(5000/2+500, 5000-1000) 7 20. Seleccionar los empleados cuyo sueldo es la 5000/2 + 500 5000-1000 6 el salario maximo de todos los empleados }SLECT eneme nombre, sal salario ROM exp WABRE sal 1N(5000/2+500, 5000-1000, (8: 1OT MAX (sal) FROM emp) ); 21. Seleccionar nombre, sueldo y sueldo formateado de todos los empleados SELEOT ename, sal, TO_CHAR(s81,'999, 939.99") FROM emp? 22, __ Seleccionar nombre, sueldo y sueldo fermateado con el simbolo 'Délar’ de todos los empleados SELECT enane, s@l,T0_CHAR(sal, ?$59,999,99") FROM emp; 23. Seleccionar nombre, sueldo y sueldo formateado con el simbolo ‘Moneda local de todos los empleados SEUECT ename, sai,70_CHAR (sal, "199, 959.99") FROW emp; 24. Seleccionar la fecha del sistema (dia, mes, afio, horas (24), minutos, segundos) SELECT T0_CHAR(sysdate, ‘dd/mn/yyy HH24:MI:99") FROM dual 25. Seleccionar la fecha del sistema (nombre dia, dia, mes, afio, horas (24), minutos, segundos) SELECT TO_CHAR(syscate, 'DAY,dd month yyy HE24:MI:ss") FROM dual; 26. __ Seleccionar la fecha del dia 1 de enero de 2005 , mediante una tira de caracteres y su mascara de formato SELECT TO_DAT(101012005", tddamyyyy"} FROM dual? 27. Calcular el numero de dias vividos por una persona nacida el dia 3 de julio de 1970: SELECT ROUND (SYSDATE-TO_DATE(*03071570", 'ddemyyyy'}) "Dias vividos" FROM duals 28. Calcular el ndmero de segundos transcurridos desde la ultima medianoche SELECT TO_CHAR(SYSDATE, ‘sssss"} FROH dual) 29. Calcular el nero horas completas transcurrido desde la ditima medianoche SELECT TRONC(TO_NUMBER(TO CHAR (sysdate, 'ssss3")) /3600) Horas FROM dual 30. Caicular el numero de meses transcurridos entre la fecha de contratacion de cada empleado y hoy SELECT name nombre, WONTHS BETWEEN (sysdate, hiredate) meses FROM emp: 31. Calcular el ditimo dia del mes (fecha) del mes actual SELECT LAST_DAY (SYSDATE) FROM dual. 32. Calcular el ditimo dia del mes (fecha) de! mes actual, con horas, minutos y segundos SELECT TO_CHAR(LAST_DAY (SYSDATS) , "dd/mn/yyy H24:60 FROW dual? ‘33. Calouiar en qué MES (cifras) se ha contratado cada empieado SELECT enane nombre, hiredate “Fecha contrato", TO_CRAR(hiredate, ‘Mit) “Mes contrato" FROM emp? 34. Caloular cuanto deberia haber cobrado cada empleado en su primer afio de trabajo (desde la fecha de contrato hasta el 12 de diciembre de ese afio) SELECT ename nombre, TO_DATE(*3112"| |TO_CHARIhiredate, 'yyyy')) "31 Dse", TO_DATE(*3112" | |70_CHAR(hiredate, 'yyyy'))~hiredate "Dias ler ato", ((TO_DATE("3112" | |TO_CHAR (hizedate, 'yyyy'))-hiredate) /30)*sal "Devengado ler atic” FROM exp; 35, Cuantos oficios distintos hay en la tabla de empleados i SELEC? DISTINCT Job PROM emp; 36. __Calcular et IRPF de cada empleado, teniendo en cuenta que para los ‘CLERK se les retiene un 15%, ya logs ‘ANAYST' un 20%. Al resto se les retiene un 19%. SELECT ename, sal, job, DECODE (job, 'CLERK', s21¥G,15, 'ANALYST", sal*0.20,se1°0.19) TRPF FROM emp; 37. Efectuar una propuesta de aumento salarial: Para los empleados del Dept. 10 un 5%, Dept. 20 un 7% , Dept 30 un 8% y al resto un 3% del salario SELECT ename, deptno, sal, DECODE (deptnd, 10, 981*0.05, 20, sai*0.07, 30, 9a1*0.08,sa1*0.03) "Aumente mensual” FROM emp: 38. __Listar los nombres de los empleados, identificando como Vendedor si cobra comision, y'No vendedor' si no la cobra SELECT ename nombre, DECODE (comm, NULL, FRON emp? 39. Calcular cuanto se paga mensualmenete a fodos los empleados SELECT SUM(sal) "Salario total” RON emp? 40. Calcular cuantos empleados hay en fa tabla SELECT COUNT(*) FROM emp: 41. Calcular el sueido medio de todos ios empleados NOt, #81") "Vendedor?"

También podría gustarte