jueves, 27 de noviembre de 2008

Caso Practico Pag. 130:

Obtén el valor absoluto de salario -10000 para todas las filas de tabla Emple:

sql> select apellido, salario, abs(salario-10000) from emple;

CEIL(n).Prueba con números, positivos y negativos:

sql> SELECT CEIL(20.3), CEIL(16), CEIL(-20.3), CEIL(-16), FROM DUAL;



MOD(m,n).Prueba con números, positivos y negativos:


sql> SELECT MOD(11,4), MOD(-10,-3), MOD(-10.4,4.5), MOD(10.4,4.5) FROM EMPLE;


FLOOR (n).Prueba con números, positivos y negativos:


sql> SELECT FLOOR(20.3), FLOOR(16), FLOOR(-20.3), FLOOR(-16) FROM EMPLE;


NVL (Valor, expresión).Con la tabla EMPLE obtenemos el SALARIO, la COMISION y la suma de ambos:


sql> SELECT SALARIO, COMISION, SALARIO + COMISION FROM EMPLE;

sql> SELECT SALARIO, COMISION, SALARIO + NVL (COMISION, 0) FROM EMPLE;

lunes, 17 de noviembre de 2008

EJERCICIO 12 PAG. 121:

Usando las tablas EMPLE y DEPART:

sql>SELECT DEPT_NO FROM DEPART WHERE LOC IN ('MADRID', 'BARCELONA');



A continuacion, seleccionamos los datos de los empleados que esten en estos departamentos:

sql>SELECT EMP_NO, APELLIDO, OFICIO, DIR, FECHA_ALT, SALARIO, COMISION, DEPT_NO FROM EMPLE WHERE DEPT_NO IN(20, 30);


Reunimos esta dos sentencias utilizando una subconsulta:

sql>SELECT EMP_NO, APELLIDO, OFICIO, DIR, FECHA_ALT, SALARIO, COMISION, DEPT_NO FROM EMPLE WHERE DEPT_NO IN(SELECT DEPT_NO FROM DEPART WHERE LOC IN ('MADRID', 'BARCELONA'));



EJERCICIO 10 PAG. 110:

A partir de la tabla emple, óbten el apellido, salario y dept_no de los empleados:

SQL> SELECT APELLIDO, SALARIO, DEPT_NUM FROM EMPLE WHERE SALARIO>2000 AND (DEPT_NUM=10 OR DEPT_NUM=20);



Sin los parentisis:


SQL> SELECT APELLIDOS, SALARIO, NUM_DEPT FROM EMPLE WHERE SALARIO>2000 AND NUM_DEPT=10 OR NUM_DEPT=20;







lunes, 10 de noviembre de 2008

Ejercicio 9 Pag. 116:

-Consulta de la tabla EMPLE, obtén el apellido y el salario de los empleados cuyo salario este comprendido entre 1500 y 200o:

sql> SELECT APELLIDOS, SALARIO FROM EMPLE WHERE SALARIO BETWEEN 1500 AND 2000;

-Que no este comprendido entre 1500 y 2000:

sql> SELECT APELLIDOS, SALARIO FROM EMPLE WHERE SALARIO NOT BETWEEN 1500 AND 2000;