Ejemplos de SQL - nivel básico

Para poder trabajar con estos ejemplos deberás tener creadas las tablas de demostración. Para obtener el fichero que las crea automáticamente haz click aquí.

1 .- Encuentre el nombre, empleo ,número de departamento y salario de cada empleado que gane igual que Jones o gane igual o mas que ford

 

  1  select ename,job,deptno,sal

  2  from emp

  3  where sal =(select sal

  4  from emp

  5  where ename = 'JONES' )

  6  or sal >= (select sal

  7  from emp

  8  where ename = 'FORD');

 

ENAME      JOB          DEPTNO       SAL

---------- --------- --------- ---------

KING       PRESIDENT        10      5000

JONES      MANAGER          20      2975

FORD       ANALYST          20      3000

SCOTT      ANALYST          20      3000

 

2 .- Seleccionar el nombre, empleo y salario de las personas de l departamento 20 que tengan el mismo empleo que las persona  del departamento 30, ordenados por salarios.

 

  1  select ename, job , sal

  2  from emp

  3  where deptno = '20'

  4  and job in (select job

  5  from emp

6  where deptno='30');

 

ENAME      JOB             SAL

---------- --------- ---------

SMITH      CLERK           800

ADAMS      CLERK          1100

JONES      MANAGER        2975

 

3. .- ¿cuál es el empleado mejor pagado por cada departamento?

 

  1  select max (sal), deptno

  2  from emp

  3  group by deptno;

 

 MAX(SAL)    DEPTNO

--------- ---------

     5000        10

3000                20

2850                30

 

4 .- Encuentre todos los  departamentos que tengan empleados y saque toda la información disponible

 

  1  select *

  2  from dept, emp

  3  where emp.deptno=dept.deptno;

 

DEPTNO                DNAME                     LOC               EMPNO   ENAME   JOB                    MGR HIREDATE   SAL   COMM  DEPTNO

 

10             ACCOUNTING         NEW YORK    7839         KING        PRESIDENT                17/11/81          5000                     10

30             SALES                      CHICAGO        7698                   BLAKE     MANAGER       7839   01/05/81         2850                     30 

10             ACCOUNTING         NEW YORK    7782                  CLARK              MANAGER       7839   09/06/81         2450                     10

20             RESEARCH              DALLAS          7566         JONES       MANAGER        7839   02/04/81         2975                     20

30             SALES                   CHICAGO         7654          MARTIN  SALESMAN       7698   28/09/81         1250     1400       30

30             SALES                      CHICAGO        7499         ALLEN      SALESMAN       7698   20/02/81        1600       300        30

30             SALES                      CHICAGO        7844         TURNER   SALESMAN       7698   08/09/81        1500           0        30

30             SALES                      CHICAGO        7900         JAMES      CLERK                7698   03/12/81          950                     30

30             SALES                      CHICAGO        7521         WARD       SALESMAN       7698   22/02/81        1250       500        30

20             RESEARCH              DALLAS          7902         FORD        ANALYST           7566  03/12/81        3000                     20

20             RESEARCH              DALLAS          7369         SMITH       CLERK                7902  17/12/80          800                     20

20             RESEARCH              DALLAS          7788         SCOTT       ANALYST          7566  09/12/82        3000                     20

20             RESEARCH              DALLAS          7876         ADAMS     CLERK                7788  12/01/83        1100                     20

10             ACCOUNTING        NEW YORK     7934         MILLER    CLERK                7782  23/01/82        1300                     10

 

5 .- ¿qué empleado fue el ultimo en  entrar en cada departamento?

 

  1  select min(hiredate),deptno

  2  from emp

  3  group by deptno;

 

MIN(HIRE    DEPTNO

-------- ---------

09/06/81        10

17/12/80        20

20/02/81        30

 

6 .- ¿Cuántos empleados trabajan en NEW YORK?

 

  1  select count (ename)

  2  from emp,dept

  3  where emp.deptno=dept.deptno

  4  and loc='NEW YORK'

 

COUNT(ENAME)

------------

           3

 

7.- ¿qué empleados trabajan NEW YORK?

 

  1  select ename

  2  from emp,dept

  3  where emp.deptno=dept.deptno

  4  and loc='NEW YORK'

 

ENAME

----------

KING

CLARK

MILLER

 

8 .- Nombres, puestos y salarios de los empleados de la empresa cuyo salario sea superior a 2000, ordenados por salario descendente

 

  1  select ename,job,sal

  2  from emp

  3  where sal>2000

  4  order by sal desc;

 

ENAME      JOB             SAL

---------- --------- ---------

KING         PRESIDENT      5000

FORD        ANALYST         3000

SCOTT      ANALYST         3000

JONES       MANAGER        2975

BLAKE      MANAGER        2850

CLARK      MANAGER        2450

 

9 .- Nombres, puestos, salarios y códigos de departamento de los empleados ordenados por código de departamento ,y cuando pertenezcan al mismo departamento, por salario de mayor a menor

 

  1  select ename, job,sal,deptno

  2  from emp

  3  order by deptno,sal desc

 

ENAME      JOB                 SAL    DEPTNO

---------- --------- --------- --------- -------------

KING          PRESIDENT     5000       10

CLARK      MANAGER       2450       10

MILLER     CLERK             1300        10

FORD         ANALYST        3000        20

SCOTT       ANALYST        3000        20

JONES       MANAGER       2975        20

ADAMS     CLERK             1100        20

SMITH       CLERK               800        20

BLAKE      MANAGER       2850       30

ALLEN      SALESMAN      1600       30

TURNER    SALESMAN     1500       30

MARTIN    SALESMAN     1250       30

WARD        SALESMAN    1250        30

JAMES       CLERK               950        30

 

10 .- Nombre, puesto e importe de la subida salarial que correspondería a cada empleado si se decidiera incrementar todos los salarios en un 10%

 

SQL> select ename,job,sal *0.10

  2  from emp;

 

ENAME             JOB        SAL*0.10

---------- --------- ---------

KING         PRESIDENT       500

BLAKE      MANAGER        285

CLARK      MANAGER        245

JONES        MANAGER        297,5

MARTIN    SALESMAN      125

ALLEN       SALESMAN      160

TURNER    SALESMAN      150

JAMES       CLERK                95

WARD        SALESMAN     125

FORD         ANALYST         300

SMITH       CLERK                80

SCOTT       ANALYST         300

ADAMS     CLERK               110

MILLER     CLERK               130

 

11 .- Igual que el punto anterior, pero  ordenado por puesto y, dentro de él por incremento salarial de mayor a menor

 

  1  select ename,job,sal *0.10

  2  from emp

  3  order by job ,sal *0.10 desc

 

ENAME      JOB        SAL*0.10

---------- --------- ---------

FORD        ANALYST         300

SCOTT      ANALYST         300

MILLER    CLERK              130

ADAMS    CLERK              110

JAMES      CLERK                95

SMITH      CLERK                80

JONES       MANAGER       297,5

BLAKE      MANAGER       285

CLARK      MANAGER       245

KING          PRESIDENT     500

ALLEN       SALESMAN     160

TURNER    SALESMAN     150

MARTIN    SALESMAN     125

WARD       SALESMAN      125

 

12 .- Salario medio, mínimo y máximo de los empleados de la compañía

 

  1  select avg(sal), min(sal),max(sal)

  2  from emp;

 

 AVG(SAL)  MIN(SAL)  MAX(SAL)

--------- --------- ---------

2073,2143       800      5000

 

13.- Salario total a pagar a los empleados cuyo puesto es analista y contar el numero de empleados con ese puesto

 

  1  select count(job),sum(sal)

  2  from emp

  3  where job='ANALYST'

 

COUNT(JOB)  SUM(SAL)

---------- ---------

         2      6000

 

14 .- Igual que el punto 12, pero agrupando los datos por departamento

 

  1  select avg(sal),min(sal),max(sal)

  2  from emp

  3  group by deptno;

 

 AVG(SAL)  MIN(SAL)  MAX(SAL)

--------- --------- ---------

2916,6667      1300      5000

         2175        800      3000

1566,6667        950      2850

 

15 .- Número de categorías que existen en la empresa

 

  1  select count (job)

  2  from emp

  3  group by job

 

COUNT(JOB)

----------

         2

         4

         3

         1

         4


VOLVER

A PROGRAMAR © 2002. All Rights Reserved.

Hosted by www.Geocities.ws

1