martes, 2 de diciembre de 2008

SQL-Ejercicio 2 pag 134

Se utiliza la base de datos del ejercicio 3 de la paguina 108


Calcular el SALARIO medio de los empleados del departamento 10 de la tabla EMPLE
SELECT AVG(SALARIO) FROM EMPLE WHERE DEPT_NO=10;




Calcular el numero de filas de EMPLE
SELECT COUNT(*) FROM EMPLE;



Calcular el numero de filas de EMPLE donde COMISION no sea nulo
SELECT COUNT(COMISION) FROM EMPLE;



Calcular el SALARIO maximo de EMPLE
SELECT MAX(SALARIO) FROM EMPLE;

miércoles, 26 de noviembre de 2008

SQL-Ejercicio 1 pag 130

Se utiliza la base de datos del ejercicio 3 de la paguina 108

Obtener el valor absolute del SALARIO-10000:

SELECT APELLIDO, SALARIO, ABS(SALARIO-10000) FROM EMPLE;



Prueba con numeros positivos y negativos:
SELECT CEIL(20.3), CEIL(16), CEIL(-20.3), CEIL(-16) FROM EMPLE;




Prueba con numeros positivos y negativos:
SELECT FLOOR(20.3), FLOOR(16), FLOOR(-20.3), FLOOR(-16) FROM EMPLE;



Prueba con numeros positivos y negativos:
SELECT MOD(11,4), MOD(10,-15), MOD(-10,-3), MOD(10.4,4.5) FROM EMPLE;



A partir de la tabla EMPLE obtenemos SALARIO, COMISION y la suma de ambas:
SELECT SALARIO, COMISION, SALARIO + COMISION FROM EMPLE;




Obtener el SALARIOA, la COMISION, y la suma de ambos, pero sustituimos los valores
null por cero;
SELECT SALARIO, COMISION, SALARIO + IFNULL(COMISION,0) FROM EMPLE;



Prueba con numeros positivos y negativos
SELECT POWER(2,4), POWER(2,-4), POWER(3.5,2.4), POWER(4.5,2) FROM EMPLE;



Prueba con redondeo positivo
SELECT ROUND(1.56,1), ROUND(1.56), ROUND(1.2234,2), ROUND(1.2676,3) FROM EMPLE;



Prueba con redondeo negativo
SELECT ROUND(145.5,-1), ROUND(145.5,-2), ROUND(145.5,-3), ROUND(145,-1) FROM EMPLE;



Prueba con numeros positivos y negativos:
SELECT SIGN(-10), SIGN(10) FROM EMPLE;



SELECT SQRT(25), SQRT(25.6) FROM EMPLE;




Truncamiento negativo:
SELECT TRUNCATE(187.98,-1), TRUNCATE(187.98,-2), TRUNCATE(187.98,-3) FROM EMPLE;

jueves, 20 de noviembre de 2008

SQL-Ejercicio 6 pag 127

Se utiliza la base de datos del ejercicio 3 de la paguina 108

Mostrar el APELLIDO y el SALARIO de los empleados que superen todos los salarios del departamento 20:
SELECT SALARIO FROM EMPLE WHERE DEPT_NO = 20;



SELECT APELLIDO, SALARIO FROM EMPLE WHERE SALARIO > 2600;

SQL-Ejercicio 5 pag 127

Se utiliza la base de datos del ejercicio 3 de la paguina 108

Mostrar los datos de los departamentos que tengan empleados:
SELECT DEPT_NO FROM EMPLE;



SELECT * FROM DEPART WHERE DEPT_NO NOT IN (10,20,30);

martes, 18 de noviembre de 2008

SQL-Ejercicio 4 pag 127

Se utiliza la base de datos del ejercicio 3 de la paguina 108

Mostrar los datos de los departamentos que no tengan empleados:
SELECT DEPT_NO FROM EMPLE;



SELECT * FROM DEPART WHERE DEPT_NO NOT IN (10,20,30);

SQL-Ejercicio 3 pag 127

Se utiliza la base de datos del ejercicio 3 de la paguina 108

Mostrar los datos de los empleados que trabajen en VENTAS:
SELECT EMP_NO, APELLIDO, OFICIO, EMPLE.DEPT_NO, SALARIO, DIR FROM EMPLE, DEPART WHERE DEPT_NO=30;



lunes, 17 de noviembre de 2008

SQL-Ejercicio 2 pag 127

Se utiliza la base de datos del ejercicio 3 de la paguina 108

Mostrar los datos de los empleados cuyo director(DIR) sea "CEREZO":
SELECT * FROM EMPLE WHERE DIR='CEREZO';

SQL-Ejercicio 1 pag 127

Se utiliza la base de datos del ejercicio 3 de la paguina 108

Mostrar el APELLIDO, el OFICIO, y la localicacion(LOC) de aquellos empleados que sean "ANALISTAS":
SELECT APELLIDO, OFICIO,LOC FROM EMPLE, DEPART WHERE OFICIO = "ANALISTA" AND DEPART.DEPT_NO=EMPLE.DEPT_NO;

lunes, 10 de noviembre de 2008

SQL-Ejercicio 13 pag 123

Se utiliza la base de datos del ejercicio 3 de la paguina 108 y del ejerciocio 4 de la paguina 110

Mostrar los siguientes datos de los empleados: APELLIDO,OFICIO, numero de departamento en el que trabajan,nombre de dicho departamento y la localizacion de dicho departamento:
SELECT APELLIDO, OFICIO, EMP_NO, DNOMBRE, LOC FROM EMPLE, DEPART WHERE EMPLE.DEPT_NO = DEPART.DEPT_NO;

SQL-Ejercicio 12 pag 121

Se utiliza la base de datos del ejercicio 3 de la paguina 108

Mostrar los datos de los empleados que trabajen en "MADRID" y en "BARCELONA":
Primero averiguamos que los departamentos que hay en "MADRID" y en "BARCELONA":
SELECT DEPT_NO FROM DEPART WHERE LOC IN ('MADRID', 'BARCELONA');



Despues, selecionamos los datos de los empleados de dichos departamentos:
SELECT EMP_NO, APELLIDO, OFICIO, SALARIO, DEPT_NO FROM EMPLE WHERE DEPT_NO IN (10, 20, 30);

SQL-Ejercicio 11 pag 118

Se utiliza la base de datos del ejercicio 3 de la paguina 108

Mostrar el APELLIDO de los empleados con el mismo OFICIO que "GIL"
Primero averiguamos el oficio de "GIL";
SELECT OFICIO FROM EMPLE WHERE APELLIDO='GIL';



Y luego mostramos el APELLIDO de los empleados con el mismo OFICIO que "GIL":
SELECT APELLIDO FROM EMPLE WHERE OFICIO='ANALISTA';

viernes, 7 de noviembre de 2008

SQL-Ejercicio 10 pag 117

Se utiliza la base de datos del ejercicio 3 de la paguina 108


Mostrar el APELLIDO de los empleados con un SALARIO igual o mayor a 2000 y que esten en los departamentos 10 o 20
SELECT APELLIDO, SALARIO, DEPT_NO FROM EMPLE WHERE SALARIO >2000 AND (DEPT_NO=10 OR DEPT_NO=20);




Se realiza la misma consulta que la anterior quitando los parentesis:
SELECT APELLIDO, SALARIO, DEPT_NO FROM EMPLE WHERE SALARIO >2000 AND DEPT_NO=10 OR DEPT_NO=20;



Muestra el APELLIDO de los empleados con un SALARIO igual o mayor a 2000 y que esten en los departamentos 10,;o de los empleados que estan en el departamento 20 (sin tener en cuenta el salario)


Se realiza la misma consulta que la anterior utilizando el operador IN:
SELECT APELLIDO, SALARIO, DEPT_NO FROM EMPLE WHERE SALARIO >2000 AND DEPT_NO IN(10,20);

SQL-Ejercicio 9 pag 116

Se utiliza la base de datos del ejercicio 8 de la paguina 108

Mostrar el APELLIDO y el SALARIO de los empleados cuyo SALARIO este comprendido entre 1500 y 2000:
SELECT APELLIDO, SALARIO FROM EMPLE WHERE SALARIO BETWEEN 1500 AND 2000;



Mostrar el APELLIDO y el SALARIO cuyo SALARIO sea menor de 1000 y mayor de 2000:
SELECT APELLIDO, SALARIO FROM EMPLE WHERE SALARIO NOT BETWEEN 1500 AND 2000;

viernes, 31 de octubre de 2008

SQL-Ejercicio 8 pag 115

Se utiliza la base de datos del ejercicio 3 de la paguina 108

Mostrar el APELLIDO de los empleados que trabajen en el departamento 10 o 30:
SELECT APELLIDO FROM EMPLE WHERE DEPT_NO IN(10,30);



Mostrar el APELLIDO de los empleados que no trabajen en el departamento 10 o 30:
SELECT APELLIDO FROM EMPLE WHERE DEPT_NO NOT IN(10,30);



Mostrar el APELLIDO de los empleados que sean VENDEDOR,ANALISTA o EMPLEADO:
SELECT APELLIDO FROM EMPLE WHERE OFICIO IN ('VENDEDOR','ANALISTA','EMPLEADO');



Mostrar el APELLIDO de los empleados que no sean VENDEDOR,ANALISTA o EMPLEADO:
SELECT APELLIDO FROM EMPLE WHERE OFICIO NOT IN ('VENDEDOR','ANALISTA','EMPLEADO');

SQL-Ejercicio 7 pag 113

Se utiliza la base de datos del ejercicio 3 de la paguina 108

Mostrar el APELLIDO de los empleados que comience por "J":
SELECT APELLIDO FROM EMPLE WHERE APELLIDO LIKE 'J%';



Mostrar el APELLIDO de los empleados que contengan la letra en la tercera posicion "R":
SELECT APELLIDO FROM EMPLE WHERE APELLIDO LIKE '__M%';



Mostrar el APELLIDOS de los empleados que empieca por la letra "A" y que contengan la "O":
SELECT APELLIDO FROM EMPLE WHERE APELLIDO LIKE 'A%O%';




DROP DATABASE ej7pag113;
CREATE DATABASE ej7pag113;
USE ej7pag113;

CREATE TABLE LIBRERIA
(
TEMA CHAR(15) NOT NULL PRIMARY KEY,
ESTANTE CHAR(1),
EJEMPLARES INT(2)
);


INSERT INTO
LIBRERIA(TEMA,ESTANTE,EJEMPLARES)VALUES
('LABORES','4','20');





Mostrar los libros cuyo TEMA sea "LABORES":
SELECT * FROM LIBRERIA WHERE TEMA='LABORES';



Hacer lo mismo utilizando el operador LIKE:
SELECT * FROM LIBRERIA WHERE TEMA LIKE 'LABORES';

SQL-Ejercicio 6 pag 112

Se utiliza la base de datos del ejercicio5 de la paguina 110

Mostrar el nombre de los alumnos que tenga NOTA1 mayor que 7 y que su nota media sea mayor que 6:
SELECT NOMBRE_ALUMNO FROM NOTAS_ALUMNOs WHERE NOTA1=7 AND (NOTA1+NOTA2+NOTA3)/3 >6;

jueves, 30 de octubre de 2008

SQL-Ejercicio 5 pag 110

DROP DATABASE ej5pag110;
CREATE DATABASE ej5pag110;
USE ej5pag110;

CREATE TABLE NOTAS_ALUMNOS
(
NOMBRE_ALUMNO CHAR(30) NOT NULL PRIMARY KEY,
NOTA1 INT(2) NOT NULL,
NOTA2 INT(2) NOT NULL,
NOTA3 INT(2) NOT NULL
);

INSERT INTO
NOTAS_ALUMNOS(NOMBRE_ALUMNO,NOTA1,NOTA2,NOTA3)
VALUES
('ALCALDE GARCIA, M. LUISA','5','5','5');

INSERT INTO
NOTAS_ALUMNOS(NOMBRE_ALUMNO,NOTA1,NOTA2,NOTA3)
VALUES
('BENITO MARTIN, LUIS','7','6','8');

INSERT INTO
NOTAS_ALUMNOS(NOMBRE_ALUMNO,NOTA1,NOTA2,NOTA3)
VALUES
('CASAS MARTINEZ, MANUEL','7','7','5');

INSERT INTO
NOTAS_ALUMNOS(NOMBRE_ALUMNO,NOTA1,NOTA2,NOTA3)
VALUES
('CORREGIDOR SANCHEZ, ANA','6','9','8');






Mostrar las notas medias de los alumnos,cambiando el nombre de la columna NOMBE_ALUMNO por NOMBRE DE ALUMNO:
SELECT NOMBRE_ALUMNO "NOMBRE DE ALUMNO", (NOTA1+NOTA2+NOTA3)/3 "NOTA MEDIA" FROM NOTAS_ALUMNOS;

 
Paradores