Upload
imad
View
24
Download
1
Embed Size (px)
DESCRIPTION
:)
Citation preview
PRCTICA Soluciones SQL-4A
1. Escribir una consulta para visualizar el nombre, nmero de departamento y nombre de
departamentos de todos los empleados. select e.ename, e.deptno, d.dname
from emp e, dept d
where e.deptno = d.deptno;
ENAME DEPTNO DNAME
---------- --------- --------------
SMITH 20 RESEARCH
ALLEN 30 SALES
WARD 30 SALES
JONES 20 RESEARCH
MARTIN 30 SALES
BLAKE 30 SALES
CLARK 10 ACCOUNTING
SCOTT 20 RESEARCH
KING 10 ACCOUNTING
TURNER 30 SALES
ADAMS 20 RESEARCH
JAMES 30 SALES
FORD 20 RESEARCH
MILLER 10 ACCOUNTING
14 filas seleccionadas.
2. Crear un listado nico de todos los oficios y localidades que hay en el departamento 30. select distinct e.job, d.loc
from emp e, dept d
where e.deptno = d.deptno
and e.deptno = 30;
JOB LOC
--------- -------------
CLERK CHICAGO
MANAGER CHICAGO
SALESMAN CHICAGO
3. Escribir una consulta para visualizar el nombre del empleado, nombre del
departamento y localidad de todos los empleados que ganan comisin.
select e.ename, d.dname, d.loc
from emp e, dept d
where e.deptno = d.deptno
and e.comm is not null;
ENAME DNAME LOC
---------- -------------- -------------
ALLEN SALES CHICAGO
WARD SALES CHICAGO
MARTIN SALES CHICAGO
TURNER SALES CHICAGO
4. Visualizar el nombre del empleado y nombre del departamento de todos los empleados
que tienen una A en su nombre. Guardar la sentencia SQL en un fichero llamado
p4q4.sql.
select e.ename, d.dname
from emp e, dept d
where e.deptno = d.deptno
and e.ename like '%A%';
ENAME DNAME
---------- --------------
ALLEN SALES
WARD SALES
MARTIN SALES
BLAKE SALES
CLARK ACCOUNTING
ADAMS RESEARCH
JAMES SALES
7 filas seleccionadas.
5. Escribir una consulta para visualizar el nombre, trabajo, nmero de departamento y
nombre del departamento de todos los empleados que trabajan en DALLAS. select e.ename, e.job, e.deptno, d.dname
from emp e, dept d
where e.deptno = d.deptno
and d.loc = 'DALLAS';
ENAME JOB DEPTNO DNAME
---------- --------- --------- --------------
SMITH CLERK 20 RESEARCH
JONES MANAGER 20 RESEARCH
SCOTT ANALYST 20 RESEARCH
ADAMS CLERK 20 RESEARCH
FORD ANALYST 20 RESEARCH
6. Visualizar el nombre del empleado y el nmero del empleado junto con el nombre de sus
jefes y nmero de jefe. Etiquetar las columnas con Empleado, Cdigo del empleado,
Nombre de jefe y Nmero de jefe, respectivamente. Guardar la sentencia SQL en un
fichero llamado p4q6.sql. select e.ename "Nombre empleado", e.empno "Numero emp",
m.ename "Jefe", m.empno "num. jef"
from emp e, emp m
where e.mgr = m.empno;
Nombre emp Numero emp Jefe num. jef
---------- ---------- ---------- ---------
SMITH 7369 FORD 7902
ALLEN 7499 BLAKE 7698
WARD 7521 BLAKE 7698
JONES 7566 KING 7839
MARTIN 7654 BLAKE 7698
BLAKE 7698 KING 7839
CLARK 7782 KING 7839
SCOTT 7788 JONES 7566
TURNER 7844 BLAKE 7698
ADAMS 7876 SCOTT 7788
JAMES 7900 BLAKE 7698
FORD 7902 JONES 7566
MILLER 7934 CLARK 7782
13 filas seleccionadas.
7. Modificar p4q6.sql para visualizar todos los empleados incluyendo a KING, quien no
tiene jefe. Volver a guardar como p4q7.sql. Ejecutar p4q7.sql. select e.ename "Nombre empleado", e.empno "Numero emp",
m.ename "Jefe", m.empno "num. jef"
from emp e, emp m
where e.mgr = m.empno(+);
Nombre emp Numero emp Jefe num. jef
---------- ---------- ---------- ---------
SMITH 7369 FORD 7902
ALLEN 7499 BLAKE 7698
WARD 7521 BLAKE 7698
JONES 7566 KING 7839
MARTIN 7654 BLAKE 7698
BLAKE 7698 KING 7839
CLARK 7782 KING 7839
SCOTT 7788 JONES 7566
KING 7839
TURNER 7844 BLAKE 7698
ADAMS 7876 SCOTT 7788
JAMES 7900 BLAKE 7698
FORD 7902 JONES 7566
MILLER 7934 CLARK 7782
14 filas seleccionadas.
8. Crear una consulta que visualice el nombre del empleado, el nmero de departamento y
apellido de todos los empleados que trabajan en el mismo departamento que un
empleado dado. Dar a las columnas sus etiquetas apropiadas. select e.deptno Departamento, e.ename Empleos,
c.ename Trabajo
from emp e, emp c
where e.deptno = c.deptno
and e.empnoc.empno
order by 1,2,3;
DEPARTAMENTO EMPLEOS TRABAJO
------------ ---------- ----------
10 CLARK KING
10 CLARK MILLER
10 KING CLARK
10 KING MILLER
10 MILLER CLARK
10 MILLER KING
20 ADAMS FORD
20 ADAMS JONES
.....
30 WARD MARTIN
30 WARD TURNER
56 filas seleccionadas.
9. Mostrar la estructura de la tabla SALGRADE. Crear una consulta que visualice el
nombre el oficio, nombre de departamento, salario y grado de todos los empleados.
desc salgrade
Nombre Nulo? Tipo
------------------------------- -------- -----
GRADE NUMBER
LOSAL NUMBER
HISAL NUMBER
select e.ename, e.job, d.dname, e.sal, s.grade
from emp e, dept d, salgrade s
where e.deptno = d.deptno
and e.sal between s.losal and s.hisal;
ENAME JOB DNAME SAL GRADE
---------- --------- -------------- --------- ---------
SMITH CLERK RESEARCH 800 1
ADAMS CLERK RESEARCH 1100 1
JAMES CLERK SALES 950 1
WARD SALESMAN SALES 1250 2
MARTIN SALESMAN SALES 1250 2
MILLER CLERK ACCOUNTING 1300 2
ALLEN SALESMAN SALES 1600 3
TURNER SALESMAN SALES 1500 3
JONES MANAGER RESEARCH 2975 4
BLAKE MANAGER SALES 2850 4
CLARK MANAGER ACCOUNTING 2450 4
SCOTT ANALYST RESEARCH 3000 4
FORD ANALYST RESEARCH 3000 4
KING PRESIDENT ACCOUNTING 5000 5
14 filas seleccionadas.
10. Crear una consulta para visualizar el nombre y la fecha de contratacin de cualquier
empleado contratado despus de Blake. select emp.ename, emp.hiredate
from emp, emp blake
where blake.ename ='BLAKE'
and blake.hiredate
11. Visualizar todos los empleados y fechas de contratacin junto con sus nombres de
jefes y fecha de contratacin de todos los empleados que fueron contratados antes
que sus jefes. Etiquetar las columnas como se considere apropiado. select e.ename Empleos, e.hiredate "Fecha emp",
m.ename Jefes, m.hiredate "Fecha jef"
from emp e, emp m
where e.mgr = m.empno
and e.hiredate