Sunteți pe pagina 1din 36

Consultas SQL

ESQUEMA SCOTT

CONTENIDO DE LAS TABLAS

-4-
Elmer Coyla Idme

CONSULTAS

1. Obtener los datos completos de los empleados.


Consulta:
select *
from emp
Respuesta:

2. Obtener los datos de los departamentos.


Consulta:
select *
from dept
Respuesta:

3. Hallar los datos de los administrativos.


Consulta:
select empno, ename, mgr, sal
from emp
where job='administrativo'
Respuesta:

4. Hallar los datos de los administrativos. Pero ordenado por nombre.


Consulta:
select empno, ename, job, mgr, sal
from emp
where job='administrativo'
order by ename asc

-5-
Consultas SQL

Respuesta:

5. El mismo pero modificado de alguna forma la sentencia anterior.

Consulta:

select empno, ename, job, mgr, sal


from emp
where job='administrativo'
and sal > 1000
order by ename

Respuesta:

6. Obtener el nombre y el salario de los empleados.


Consulta:
select ename,sal
from emp
Respuesta:

7. Hallar el nombre de los departamentos.

Consulta:
select dname
from dept

-6-
Elmer Coyla Idme

Respuesta:

8. Hallar el nombre de los departamentos. Pero ordenado por nombre.


Consulta:
select dname
from dept
order by dname asc
Respuesta:

9. Lo mismo pero ordenado por la ciudad.


Consulta:
select dname, loc
from dept
order by loc asc
Respuesta:

10. Hallar los nombres de los departamentos ordenados por su ciudad, pero
en orden inverso.
Consulta:
select dname, loc
from dept
order by loc desc
Respuesta:

11. Obtener el nombre y el empleo de los empleados, ordenados por salario.


Consulta:
select ename, job, sal from emp order by sal

-7-
Consultas SQL

Respuesta:

12.

Consulta:

select ename, job, sal


from emp
order by job, sal

Respuesta:

13. ormalmente por


salario.

Consulta:
select ename, job, sal
from emp
order by job desc, sal asc

-8-
Elmer Coyla Idme

Respuesta:

14. Obtener los salarios y las comisiones de los empleados del


departamento 30.
Consulta:
select deptno,ename, sal, comm
from emp
where deptno =30
Respuesta:

15.
Consulta:
select deptno,ename, sal, comm
from emp
where deptno =30
order by comm asc
Respuesta:

16. Obtener las distintas comisiones.


Consulta:
select distinct comm from emp

-9-
Consultas SQL

Respuesta:

17. Hallar las distintas comisiones y los nombres de los empleados.

Consulta:

select distinct comm, ename


from emp
where comm is not null
Respuesta:

18. Hallar los distintos salarios.

Consulta:

select distinct sal


from emp
Respuesta:

19. os posibles de la
empresa, de manera que no se repita.

Consulta:
select distinct comm, deptno
from emp
where comm is not null

- 10 -
Elmer Coyla Idme

Respuesta:

20. r a los empleados


ias.
Consulta:
select deptno, sal +1000 AS 'NUEVO SALARIO'
from emp
where deptno=30
Respuesta:

21. or.
Consulta:
select deptno, sal, sal +1000 AS 'NUEVO SALARIO'
from emp
where deptno=30
Respuesta:

22. or a la mitad de su
salario.
Consulta:
select ename
from emp
where comm >(sal/2)
Respuesta:

- 11 -
Consultas SQL

23. que el 25% del


sueldo.

Consulta:

select ename
from emp
where comm <=(sal*0.25)

Respuesta:

24.
respectivo valor.

Consulta:

select 'Nombre:', ename, 'Puesto:', job


from emp

Respuesta:

25.
empleado supera a 7500.

Consulta:

select empno,sal, comm


from emp
where empno>7500

- 12 -
Elmer Coyla Idme

Respuesta:

26. Si dividimos a los empleados en dos grupos A y B, empezando los del


de los del grupo B,

Consulta:
select ename, job
from emp
where substring(ename,1,1)>'j'
order by ename asc
Respuesta:

27.
empleado.
Consulta:
select sal, comm, (sal+comm) as 'salario total'
from emp
where comm is not null
order by empno asc
Respuesta:

- 13 -
Consultas SQL

28.
Consulta:
select sal, comm, (sal) as 'salario total'
from emp
where comm is null
order by empno asc
Respuesta:

29. Hallar el nombre de los empleados que teniendo un salario superior a


98.
Consulta:
select ename, mgr
from emp
where sal > 1000 and mgr =7698
Respuesta:

30. Hallar el conjunto complementario del resultado del ejercicio anterior.


Consulta:
select ename, mgr
from emp
where sal < 1000 and mgr <>7698
Respuesta:

31. l salario total


ordenado por nombre.
Consulta:
select ename , sal+comm as 'salario total', comm,
round((100*comm/(sal+comm)),0) as 'porcentaje'
from emp where comm is not null order by ename

- 14 -
Elmer Coyla Idme

Respuesta:

32. Hallar los empleados del departamento 10 cuyo nombre contenga la

Consulta:
select ename
from emp
where deptno = 10 and ename not like '%la%'
Respuesta:

33. Obtener los empleados que no son supervisados por


Consulta:
select ename, mgr
from emp
where mgr is null
Respuesta:

34. Obtener los nombres de los departamentos que no sea

Consulta:
select dname
from dept
where not dname='ventas' and not dname ='investigacion'
order by loc
Respuesta:

35. Deseamos conocer el nombre y departamento de los administrativos que


no trabajan en el departamento 10 y cuyo salario es superior a 800,

Consulta:
select ename, deptno, sal , hiredate from emp where job='administrativo' and
deptno<>10 and sal > 800 order by hiredate asc

- 15 -
Consultas SQL

Respuesta:

36. nombres en orden

Consulta:

select ename, comm , sal/comm


from emp
where comm is not null
order by ename

Respuesta:

37. iene exactamente


5 caracteres.

Consulta:

select ename
from emp
where len(ename)=5
Respuesta:

38. caracteres.

Consulta:

select ename
from emp
where len(ename)>=5

- 16 -
Elmer Coyla Idme

Respuesta:

39. Hallar los datos de los empleados para los que, su nombre comiencen
con A y su salario es mayor que 1000
Consulta:
select ename, job, mgr, sal, deptno
from emp
where (ename like '[a]%' and sal>1000)
Respuesta:

40. Hallar el nombre y el salario total de todos los empleados y ordenados


por este ultimo y por su propio salario.
Consulta:
select ename, sal+comm as 'salario total' , sal
from emp
order by sal+comm, sal
Respuesta:

- 17 -
Consultas SQL

41. leados que


perciben un salario situado entre la mitad de la co

Consulta:
select ename, sal, comm
from emp
where sal between comm/2 and comm
order by comm
Respuesta:

42. El complementario del anterior.


Consulta:
select ename, sal, comm
from emp
where sal not between comm/2 and comm
order by comm
Respuesta:

43. Intentar lograr los nombres y empleos de los empleados tales que su

Consulta:
select ename, job from emp
where ename like '[a]%'and job like '%ivo'
Respuesta:

44. ntentar con un


tiene al menos
cinco caracteres.

Consulta:
select ename, job
from emp
where len(job)> 5 and ename like '[a]%'and job like '%ivo'
Respuesta:

- 18 -
Elmer Coyla Idme

45. Hallar los nombres de los empleados que tienen como


caracteres en su nombre.
Consulta:
select ename
from emp
where len(ename)<=5
Respuesta:

46. ercibido por ejemplo


es del 6% y el siguiente de 7% hallar los nombres y salarios totales
actuales y futuros de todos los empleados, indicando para cada uno si

Consulta:
select ename, comm, sal+comm as 'Salario total',
(sal+comm)+(0.06*(sal+comm)) as '6%', (sal+comm)+(0.07*(sal+comm)) as
'7%'
from emp
where comm is not null
union
select ename, comm,sal, sal+(0.06*sal),sal+(0.07*sal)
from emp
where comm is null
Respuesta:

- 19 -
Consultas SQL

47. Hallar el nombre y la fecha de ingreso de los empleados que no son


vendedores.
Consulta:
select ename, hiredate
from emp
where job <> 'vendedor'
Respuesta:

48. de numero uno de


los siguientes; 7844, 7900, 7521, 7782 y 7369, pero no uno de entre: 7902,
ue el predicado no debe
ser muy extenso.

Consulta:

select ename
from emp
where empno in (7844,7900,7521,7782,7934,7678,7369) and empno not in
(7902,7839,7499,7878)

Respuesta:

49. Hallar los salarios totales de todos los empleados.

Consulta:

select ename, comm+sal as 'Salario Final'


from emp
where comm is not null
union
select ename, sal
from emp
where comm is null

- 20 -
Elmer Coyla Idme

Respuesta:

50. Ordena los empleados por su departamento y luego de manera

Consulta:
select ename, deptno, empno
from emp
order by deptno, empno desc
Respuesta:

51.
mayor que el suyo, obtener los que reciben el salario mas de 1000 y
menos de 2000.

Consulta:
select ename, mgr,empno, sal, deptno
from emp
where mgr>empno and sal between 1000 and 2000

- 21 -
Consultas SQL

Respuesta:

52. destinado a comisiones

Consulta:

select max(sal) as 'Maximo Salario', sum(comm) as 'Total de comisiones',


count(empno) as 'Total de Empleados'
from emp

Respuesta:

53. Hallar los datos de los empleados cuyo salario es mayor que el del
ario

Consulta:

select ename, sal


from emp
where sal >(select sal
from emp
where empno=7934)
order by sal asc
Respuesta:

54. empleo y salarios


tanto de los que superan el salario de Allen como del propio Allen.

Consulta:
select ename, job,sal
from emp
where sal >(select sal
from emp
where ename='allen')

- 22 -
Elmer Coyla Idme

Respuesta:

55.
Consulta:
select ename
from emp
where ename>= all(select ename
from emp)
Respuesta:

erencia entre ellos.


Consulta:
select max(sal)as 'salario maximo', min(sal) as 'salario minimo', (max(sal)-
min(sal)) as 'diferencia' from emp
Respuesta:

57.
salario mas alto y mas bajo y a cuanto ascienden?.
Consulta:
select ename, sal from emp where sal >= all(select sal from emp)
union
select ename, sal from emp where sal <= all(select sal from emp)
Respuesta:

58. Hallar la media de los salarios de los departamento


supera a 900, considerando los salarios inferiores
.
Consulta:
select e.deptno, d.dname, avg(sal) as 'Salario promedio'
from emp e, dept d
where e.deptno=d.deptno and
e.deptno not in(select deptno from emp where sal <=900)
group by d.dname, e.deptno

- 23 -
Consultas SQL

Respuesta:

59. de cinco letras?.


Ordena el resultado inversamente por ciudades y normalmente por
nombres de empleados.
Consulta:
select e.ename, d.loc
from emp e, dept d
where e.deptno=d.deptno and len(d.loc)>5
order by d.loc desc , e.ename
Respuesta:

60. Hallar los empleados cuyo salario supera o coincide con la media del
salario de la empresa.

Consulta:

select ename, sal


from emp
where sal >= all (select avg(sal)
from emp)
Respuesta:

- 24 -
Elmer Coyla Idme

61.
departamento.
Consulta:
select e.ename, e.sal, e.deptno
from emp e
where e.sal >= all(select sal
from emp
where deptno=e.deptno)
order by sal
Respuesta:

62. es salarios
encontramos en el departamento 30, y a que cantidad asciende la suma
de los salarios de dicho departamento?
Consulta:
select count(distinct job) as 'Empleos', count(ename) as 'Empleados',
count(distinct sal) as 'Salarios', sum(sal) as 'Total de salarios'
from emp
where deptno=30
Respuesta:

63.
Consulta:
select count(comm) as 'Cantidad de empleados con comision'
from emp
Respuesta:

64.

Consulta:
select count(e.empno) as 'Cant. de Emp del Dept 10'
from emp e, dept d
where e.deptno=d.deptno
and d.deptno=10
Respuesta:

- 25 -
Consultas SQL

65.
de empleados de los mismos.
Consulta:
select e.deptno, d.dname, count(e.ename)as 'Cant de Empleados'
from emp e, dept d
where d.deptno=e.deptno and
3<(select count(ename)
from emp
where deptno=d.deptno)
group by dname, e.deptno
Respuesta:

66. Halla los empleados que tienen por lo menos un empleado a su mando,
ordenando inversamente por nombre.
Consulta:
select ename
from emp
where empno in(select mgr
from emp)
order by ename desc
Respuesta:

67. Halla la suma de los salarios de cada departamento.

Consulta:

select d.dname, sum(e.sal) as 'suma de salarios'


from emp e, dept d
where e.deptno=d.deptno
group by d.dname

Respuesta:

- 26 -
Elmer Coyla Idme

68.
Consulta:
select distinct d.deptno,d.dname
from emp e, dept d
where d.deptno not in(select e.deptno
from emp e, dept d
where e.deptno=d.deptno)
Respuesta:

69. la media del


salario de cada uno?.
Consulta:
select count(e.ename), avg(e.sal)
from emp e, dept d
where e.deptno=d.deptno
group by d.deptno
Respuesta:

70. Halla los empleados del departamento 30 por orden descendente de

Consulta:
select ename, deptno, comm
from emp
where deptno=30
order by comm desc
Respuesta:

71. Obtener los empleados que trabajan en Dallas o en New York.

Consulta:
select ename
from emp
where deptno in(select deptno
from dept
where loc='dallas' or loc='new york')

- 27 -
Consultas SQL

Respuesta:

72. partamento. Se
debe incluir el salario y el nombre del departamento.
Consulta:
select e.ename, e.sal, d.dname
from emp e, dept d
where d.deptno=e.deptno and e.sal>= all(select sal
from emp
where deptno=e.deptno)
Respuesta:

73. Seleccionar los empleos que hay en cada departamento, ordenados por
departamento.
Consulta:
select deptno, job
from emp
order by 1
Respuesta:

- 28 -
Elmer Coyla Idme

74. Calcular el salario anual a percibir por cada empleado.

Consulta:
select ename, sal *4*12 as 'Salario Anual'
from emp
Respuesta:

75. Seleccionar aquellos empleados que hayan entrado antes del 1/1/82.
Consulta:
select ename, hiredate
from emp
where hiredate < '1/1/82'
Respuesta:

76. Seleccionar los empleados cuyo salario sea superior al de ADAMS.

Consulta:
select ename
from emp
where sal >(select sal
from emp
where ename = 'adams')

- 29 -
Consultas SQL

Respuesta:

77. Seleccionar los empleados que trabajan en el mismo departamento que


CLARK.
Consulta:
select ename
from emp
where deptno=(select deptno
from emp
where ename = 'clark')
Respuesta:

78. Encontrar a los empleados cuyo jefe es BLAKE.


Consulta:
select ename
from emp
where mgr=(select empno
from emp
where ename='blake')
Respuesta:

79.

Consulta:
select ename
from emp
where comm is not null

- 30 -
Elmer Coyla Idme

Respuesta:

80. Seleccionar los empleados que trabajan en Chicago.


Consulta:
select ename
from emp
where deptno in(select deptno
from dept
where loc='chicago')
Respuesta:

81. de los
Vendedores.
Consulta:
select ename
from emp
where sal > some(select sal
from emp
where job='vendedor')
Respuesta:

82. Seleccionar aquellos empleados que hayan entrado en 1981.


Consulta:
select ename, hiredate
from emp
where hiredate between '1/1/1981'and'31/12/1981'

- 31 -
Consultas SQL

Respuesta:

83. Seleccionar aquellos empleados cuyo nombre tenga como segunda

Consulta:
select ename
from emp
where ename like '_d%'
Respuesta:

84. s empleados
sea superior a
4000.
Consulta:
select job, min(sal), max(sal), avg(sal)
from emp
group by job
having avg(sal)> 4000
Respuesta:

85. en el resultado
.
Consulta:
select job, avg(sal), min(sal)
from emp
group by job
having avg(sal)>1500
Respuesta:

- 32 -
Elmer Coyla Idme

86.
Consulta:
select count(*)
from emp, dept
where emp.deptno=dept.deptno and loc='chicago'
Respuesta:

87.
Consulta:
select ename
from emp, dept
where emp.deptno=dept.deptno and loc='dallas'
Respuesta:

88. Nombre de todos los empleados, empleo, departamento y localidad.


Consulta:
select ename, job, emp.deptno, loc
from emp, dept
where emp.deptno=dept.deptno
Respuesta:

89. y el nombre de su
jefe.
Consulta:
select e1.ename, e1.mgr, e2.ename
from emp e1, emp e2
where e2.empno=e1.mgr
order by e1.ename

- 33 -
Consultas SQL

Respuesta:

90. Mostrar el nombre del empleado, su trabajo, el nomb


departamento en el que trabaja.
Consulta:
select ename,job, dname, dept.deptno
from emp, dept
where emp.deptno=dept.deptno
Respuesta:

91. Nombres de los empleados que trabajan en Chicago.

Consulta:

select ename
from emp e
where exists(select *
from dept d
where e.deptno=d.deptno
and loc='chicago')

- 34 -
Elmer Coyla Idme

Respuesta:

92.
empleados asignados.

Consulta:

select distinct deptno


from emp e1
where 3<(select count(*)
from emp e2
where e1.deptno=e2.deptno)

Respuesta:

93. Listar el nombre de los empleados que ganan menos que sus
supervisores.

Consulta:

select ename
from emp e1
where sal<(select sal
from emp e2
where e2.empno=e1.mgr)

Respuesta:

- 35 -
Consultas SQL

94. Encontrar el ename, dname, job y sal de los empleados que trabajen en
mayor que la media
del salario del departamento 10.
Consulta:
select ename, dname, job, sal
from emp, dept
where emp.deptno=dept.deptno
and emp.deptno=(select deptno
from emp
where ename='turner')
and sal > (select avg(sal)
from emp
where deptno =30)
Respuesta:

95. Listar el nombre, trabajo, departamento, localidad y salario de aquellos


empleados que tengan un salario mayor de 2000 y tra

Consulta:
select ename,job,emp.deptno, loc, sal
from emp,dept
where emp.deptno=dept.deptno
and sal>2000
and loc in ('dallas','new york')
Respuesta:

96. Mostrar el nombre, cargo y sueldo para todos los empleados excepto los
gerentes.
Consulta:
select ename,job, sal from emp where job!='gerente'
Respuesta:

- 36 -
Elmer Coyla Idme

97. Listar el nombre, sueldo mensual, sueldo diario (basado en un mes de 22

para Allen y Jones.

Consulta:

select ename,sal,sal/22, round(sal/22,0)


from emp
where ename in('allen','jones')

Respuesta:

98. Mostrar el salario promedio anual para todos los ca


de dos empleados.

Consulta:

select job, 12*avg(sal)


from emp
group by job
having count(*) > 2

Respuesta:

99. empleados.

Consulta:

select deptno, count(*)


from emp
group by deptno

Respuesta:

- 37 -
Consultas SQL

100. ada
departamento.

Consulta:

select deptno, job, count(*)


from emp
group by deptno, job

Respuesta:

- 38 -
Elmer Coyla Idme

El que sabe y

calla

Bertolt Brecht

- 39 -

S-ar putea să vă placă și