5
PRÁCTICA Soluciones SQL-4A 1. Escribir una consulta para visualizar el nombre, número 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 comisión. 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.

soluciones-SQL4Ar

  • 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