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%';

viernes, 31 de octubre de 2008

Ejercicio 6 Pag. 112:

Realiza la siguiente consulta:

sql> SELECT NOMBRE_ALUMNO FROM NOTAS WHERE NOTA1=7 AND (NOTA1+NOTA2+NOTA3)/3 < 6;

Ejercicio 5 Pag. 110:

Realiza la sigiente consulta:

sql> SELECTNOMBRE_ALUMNO "NOMBRE DEL ALUMNO", (NOTA1+NOTA2+NOTA3)/3 "NOTA MEDIA" FROM NOTAS;

Ejercicio 4 Pag. 110:

Realizar la siguiente consulta:

sql> SELECT DEPARTAMENTO "NOMBRE DEPARTAMENTO", NUM_DEPT "NUMERO DEPARTAMENTO" FROM DEPART;

jueves, 30 de octubre de 2008

Ejercicio 3 Pag. 108:

Creamos la tabla EMPLE con los siguientes campos:

NUM_EMPLE
NOMBRE
APELLIDOS
OFICIO
NUM_DEPT

Cargamos la tabla en el programa de msql: mediante "source".


Realizamos la primera consulta:

SQL> SELECT NOMBRE_EMPLE,APELLIDOS,OFICIO,NUM_DEPT FROM EMPLE WHERE NUM_DEPT = 20 ORDER BY APELLIDOS;


Segunda consulta:

SQL> SELECT * FROM EMPLE WHERE OFICIO = 'ANALISTA' ORDER BY NUMERO_EMPLE;



Tercera consulta:

SQL> SELECT * FROM EMPLE WHERE NUM_DEPT=21 AND OFICIO = 'ANALISTA' ORDER BY APELLIDO DESC, NUMERO_EMPLE DESC;

miércoles, 29 de octubre de 2008

EJERCICIO 3 PAG. 109:

Crea la siguienta tabla ALUMO405, EJERCICIO 3 PAGINA 109:
--------------------------------------------------------------------
DROP DATABASE EJERCICIO3;
CREATE DATABASE EJERCICIO3;
USE EJERCICIO3;


CREATE TABLE ALUMO405

(DNI CHAR(20) NOT NULL PRIMARY KEY,
NOMBRE CHAR(20) NOT NULL,
APELLIDOS CHAR(20) NOT NULL,
FECHA_NACIMIENTO DATE NOT NULL,
DIRECCION CHAR(10) NOT NULL,
POBLACION CHAR(20) NOT NULL,
PROVINCIA CHAR(20) NOT NULL,
CURSO INT(1) NOT NULL,
NIVEL CHAR(3) NOT NULL,
CLASE CHAR(2) NOT NULL,
FALTAS1 CHAR(2) NOT NULL,
FALTAS2 CHAR(2) NOT NULL,
FALTAS3 CHAR(2) NOT NULL,);

INSERT INTO
ALUMO405(DNI,NOMBRE,APELLIDOS,FECHA_NACIMIENTO,DIRECCION,
POBLACION,PROVINCIA,CURSO,NIVEL,CLASE,FALTAS1,FALTAS2,FALTAS3)VALUES
('1452','FRANCISCO','PEREZ','4/02/87','C/SANTUCO','SANTANDER','CANTABRIA','2',
'ASI','11','1','2','4');

INSERT INTO
ALUMO405(DNI,NOMBRE,APELLIDOS,FECHA_NACIMIENTO,DIRECCION,
POBLACION,PROVINCIA,CURSO,NIVEL,CLASE,FALTAS1,FALTAS2,FALTAS3)VALUES
('1428','AEXIA','SANTOLIN','12/08/89','C/GENERAL MOLA','PAMPLONA','CANTABRIA','2'
,'ASI','11','1','2','4');

INSERT INTO
ALUMO405(DNI,NOMBRE,APELLIDOS,FECHA_NACIMIENTO,DIRECCION,
POBLACION,PROVINCIA,CURSO,NIVEL,CLASE,FALTAS1,FALTAS2,FALTAS3)VALUES
('4587','RICARDO','CASILLAS','1/10/86','C/CASTILLA','SANTANDER','CANTABRIA','2'
,'ASI','11','1','2','4');

______________________________________________________

-OBTÉN LOS DATOS DE LOS ALUMNOS:

SELECT * FROM ALUMO450;

-OBTÉN LOS SIGUIENTES DATOS: DNI,NOMBRE,APELLIDOS,CURSO,NIVEL Y CLASE:

SELECT DNI,NOMBRE,APELLIDOS,CURSO,NIVEL,CLASE FROM ALUMO405;

-OBTÉN TODOS LOS DATOS DE ALUMNOS CUYA POBLACION SEA "GUADALAJARA":

SELECT DNI,NOMBRE,APELLIDOS,FECHADENACIMIENTO... POBLACION='GUADALAJARA' FROM ALUMO405;

-OBTÉN NOMBRE Y APELLIDOS DE TODOS LOS ALUMNOS QUE SEAN DE GUADALAJARA:

SELECT NOMBRE,APELLIDOS FROM ALUMO405 WHER POBLACION='GUADALAJARA';

-CONSULTA EL DNI, NOMBRE, APELLIDOS, CURSO, NIVEL Y CLASE ORDENADO POR APELLIDOS Y NOMBRE ASCENDENTE:

SELECT DNI,NOMBRE,APELLIDOS,CURSO,NIVEL,CLASE FROM ALUM405 ORDER BY NOMBRE ASC, APELLIDOS ASC;

viernes, 24 de octubre de 2008

Consultas:

Realizar las siguientes consultas sobre la base de datos ventas:

1. ClientesEdad>30:

2. ClientesSantander50:

Ejercicio 3 Pag. 93:

A partir de la siguiente tabla:

Agenda( Nombre, edad código_provincia, telefono).
Provincias (Código, Nombre).

-Escribe la colunna o conjunto de colunnas que pueden ser claves primarias:


-Escribe un enunciado para las siguientes expresiones:

1) Seleccion Edad>37(Agenda)

jueves, 23 de octubre de 2008

Ejercicio 2 Pag. 93:

Dada la tabla 2.22, transformarla a 3fn:





martes, 21 de octubre de 2008

Ejercicio 1 Pag. 93:

Esquema relacional del ejercicio:



lunes, 20 de octubre de 2008

Ejercicio 6 Pag. 88:

Pasar a Union estas tablas:




Union:

miércoles, 15 de octubre de 2008

Esquema Relacional 4: Unidad didactica IV

Esquema Relacional del Supuesto de la diapositiva 14 de la Unidad IV: