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;

Ejercicio 8 Pag. 115:

La lista de valores está formada por números:

-Consulta en la tabla EMPLE los apellidos cuyo número de departamento sea 10 o 30:

sql> SELECT APELLIDOS FROM EMPLE WHERE NUM_DEPT IN (10, 30);



-Consulta los apellidos de la tabla que no sean ni 10 ni 30:


sql> SELECT APELLIDOS FROM EMPLE WHERE NUM_DEPT NOT IN (10, 30);


La lista de valores está formada por cadenas:

-Consulta los apellidos cuyo oficio sea 'VENDEDOR' , 'ANALISTA' o 'EMPLEADO':

sql> SELECT APELLIDOS FROM EMPLE WHERE OFICIO IN ('VENDEDOR', 'ANALISTA', 'EMPLEADO');


-Consulta los apellidos cuyo oficio que no sea 'VENDEDOR' ni 'ANALISTA' o 'EMPLEADO':

sql> SELECT APELLIDOS FROM EMPLE WHERE OFICIO NOT IN ('VENDEDOR', 'ANALISTA', 'EMPLEADO');


viernes, 7 de noviembre de 2008

Ejercicio 7 Pag. 113:

Ejercicio 7, pagina 113:

Utilizacion del 'Like':

Con la tabla empleados realizar las siguientes consultas:

sql> SELECT APELLIDOS FROM EMPLE WHERE APELLIDO LIKE 'J%';

-Que tengan una R en la segunda posicion:

sql> SELECT APELLIDOS FROM EMPLE WHERE APELLIDOS LIKE '_R%';


-Que empiecen por 'A' y tengan una 'O' en su interior:

sql> SELECT APELLIDOS FROM EMPLE WHERE APELLIDOS LIKE 'A%O%';