Base de Datos Consultas.

INSTITUTO TECNOLÓGICO SUPERIOR SUCRE NOMBRE: Jean Cedeño CURSO: 2A ESPECIALIDAD: Electricidad MATERIA: Computación 2 SE

Views 198 Downloads 14 File size 5MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

INSTITUTO TECNOLÓGICO SUPERIOR SUCRE

NOMBRE: Jean Cedeño CURSO: 2A ESPECIALIDAD: Electricidad MATERIA: Computación 2 SECCION: Vespertina SEMESTRE: Segundo

INSTITUTO TECNOLÓGICO SUPERIOR SUCRE Tema: Base de datos Introducción: Una consulta es aquella información que nosotros colocamos, por medio de claves en una base de datos, para buscar con exactitud los datos que nosotros como usuarios, requerimos en ese instante. Objetivo general: 

Conocer las distintas formas de realizar consultas, a través de códigos dentro de una base de datos, para comenzar a realizar las consultas de nuestro proyecto con gran facilidad.

Objetivos específicos: 

Conocer conceptos básicos de diseño y modelo de relación de una base de datos



Realizar las sentencias para las consultas



Hacer distintos ejercicios de consultas para tener mayor dominio de la base de datos.

Breve descripción de la tarea o proyecto final Realizar todas las actividades que se encuentran dentro de esta base de datos, para tener mayor dominio. Además de realizar el informe adecuado a la tarea.

Desarrollo: Creamos nuestra base de datos de la siguiente manera, poniendo el código: create database EMPRESA

INSTITUTO TECNOLÓGICO SUPERIOR SUCRE CREACION DE TABLAS Procedemos a crear las diferentes tablas para la base de datos ingresando los códigos correspondientes. CREATE TABLE DEPARTAMENTO ( N_DEPARTAMENTO INT, NOMBRE_DEPARTAMENTO CHAR(50), LOCALIZACION VARCHAR(50), PRIMARY KEY (N_DEPARTAMENTO))

INSTITUTO TECNOLÓGICO SUPERIOR SUCRE RELACIONES DE UNO A MUCHOS CON SENTENCIAS Una vez creadas todas las tablas de una base de datos, procedemos a crear las uniones con las sentencias correspondientes e identificando si será de muchos a muchos, de uno a uno o de uno a muchos: N_DEPARTAMENTO INT, PRIMARY KEY (CODIGO_C), CONSTRAINT FK_FDE FOREIGN KEY (N_DEPARTAMENTO) REFERENCES DEPARTAMENTO (N_DEPARTAMENTO) )

Diagrama de la base de datos

Ingresar datos en tablas: Tabla departamento INSERT VALUES INSERT VALUES INSERT VALUES INSERT VALUES

INTO DEPARTAMENTO ('1','DEPA','QUITO') INTO DEPARTAMENTO ('2','DEPAUNO','VALLE') INTO DEPARTAMENTO ('3','DEPADOS','SAN FELIPE') INTO DEPARTAMENTO ('4','DEPATRES','MARIN')

INSTITUTO TECNOLÓGICO SUPERIOR SUCRE

Tabla EMPLEADO INSERT INTO EMPLEADO VALUES ('001','matias','12','FERRO','TRAFICANTE','2018','10000','12','2') INSERT INTO EMPLEADO VALUES ('002','antonio','25','FERRO','EXPENDEDOR','2017','1000','50','3') INSERT INTO EMPLEADO VALUES ('003','julio','31','SAN BARTOLO','ANALISTA','2016','5000','40','1') INSERT INTO EMPLEADO VALUES ('004','jose','37','LUCHA','DIRECTOR','2016','10450','1044','3') INSERT INTO EMPLEADO VALUES ('005','carmen','17','QUINCHE','PRESIDENTE','2014','5041','30','4') INSERT INTO EMPLEADO VALUES ('006','alfonso','26','VALLE','EMPLEADO','2015','15000','150','2') INSERT INTO EMPLEADO VALUES ('007','luis','32','MAGDALENA','VENDEDOR','2013','16890','80','1') INSERT INTO EMPLEADO VALUES ('008','JUAN','32','MAGDA','VENDEDOR','2015','13890','80','3')

INSTITUTO TECNOLÓGICO SUPERIOR SUCRE

Resolver las siguientes consultas en SQL. --1 Mostrar los nombres de los empleados ordenados alfabéticamente(Z…A) SELECT * FROM EMPLEADO ORDER BY NOMBRE DESC

--2 Seleccionar el nombre, el oficio y la localidad de los departamentos donde trabajan los vendedores SELECT NOMBRE, OFICIO, LOCALIZACION FROM EMPLEADO, DEPARTAMENTO WHERE OFICIO ='VENDEDOR' AND EMPLEADO.N_DEPARTAMENTO=DEPARTAMENTO.N_DEPARTAMENTO

INSTITUTO TECNOLÓGICO SUPERIOR SUCRE

--3 Listar los nombres de los empleados cuyo nombre termine con la letra 'o' SELECT NOMBRE FROM EMPLEADO WHERE NOMBRE LIKE '%O'

--4. Seleccionar el nombre, el oficio y salario de los empleados que trabajan en León. select nombre, oficio, salario from EMPLEADO where DIRECCION='FERRO'

select nombre, oficio, salario from EMPLEADO,DEPARTAMENTO where EMPLEADO.N_DEPARTAMENTO=DEPARTAMENTO.N_DEPARTAMENTO and localizacion='VALLE'

INSTITUTO TECNOLÓGICO SUPERIOR SUCRE

--5. Seleccionar el nombre, salario y localidad donde trabajan de los empleados que tengan un salario entre 10000 y 13000. select nombre, salario, localizacion from EMPLEADO, DEPARTAMENTO where EMPLEADO.N_DEPARTAMENTO=DEPARTAMENTO.N_DEPARTAMENTO and salario between 10000 and 13000

--6. Visualizar los departamentos con más de 2 empleados. select EMPLEADO.N_DEPARTAMENTO,count(*) from EMPLEADO, DEPARTAMENTO where EMPLEADO.N_DEPARTAMENTO=DEPARTAMENTO.N_DEPARTAMENTO group by EMPLEADO.N_DEPARTAMENTO having count(*) > 2

INSTITUTO TECNOLÓGICO SUPERIOR SUCRE --7. Mostrar el nombre, salario y nombre del departamento de los empleados que tengan el mismo oficio que ‘Leonel Alfonso Esquivel’. select nombre, salario, NOMBRE_DEPARTAMENTO from EMPLEADO, DEPARTAMENTO where EMPLEADO.N_DEPARTAMENTO=DEPARTAMENTO.N_DEPARTAMENTO and oficio=(select oficio from EMPLEADO where nombre='JUAN')

--8. Mostrar el nombre, salario y nombre del departamento de los empleados que tengan el mismo oficio que “Castillo Montes Luis” y que no tengan comisión. select nombre, salario, NOMBRE_DEPARTAMENTO from EMPLEADO, DEPARTAMENTO where EMPLEADO.N_DEPARTAMENTO=DEPARTAMENTO.N_DEPARTAMENTO and oficio= (select oficio from EMPLEADO where nombre='JUAN') and comision is null

--9. Mostrar los datos de los empleados que trabajan en el departamento de contabilidad, ordenados por nombre. select * from EMPLEADO, DEPARTAMENTO where EMPLEADO.N_DEPARTAMENTO=DEPARTAMENTO.N_DEPARTAMENTO and NOMBRE_DEPARTAMENTO = 'DEPA' order by nombre

INSTITUTO TECNOLÓGICO SUPERIOR SUCRE

--10. Nombre de los empleados que trabajan en León y cuyo oficio sea analista o empleado. select NOMBRE from EMPLEADO, DEPARTAMENTO where EMPLEADO.N_DEPARTAMENTO=Departamento.N_DEPARTAMENTO and localizacion='VALLE' and oficio in ('Analista','Empleado')

INSTITUTO TECNOLÓGICO SUPERIOR SUCRE --11. Calcula el salario medio de todos los empleados. select avg(SALARIO) from EMPLEADO

--12. ¿Cuál es el máximo salario de los empleados del departamento 4? select max(salario) from EMPLEADO where N_DEPARTAMENTO = 4

--13. Calcula el salario mínimo de los empleados del departamento‘DEPA’. select min(salario) from EMPLEADO, DEPARTAMENTO where NOMBRE_DEPARTAMENTO='DEPA' and EMPLEADO.N_DEPARTAMENTO=DEPARTAMENTO.N_DEPARTAMENTO

--14. Calcula el promedio del salario de los empleados del departamento de ‘CONTABILIDAD’. select avg(salario) from EMPLEADO, DEPARTAMENTO

INSTITUTO TECNOLÓGICO SUPERIOR SUCRE where EMPLEADO.N_DEPARTAMENTO=DEPARTAMENTO.N_DEPARTAMENTO and NOMBRE_DEPARTAMENTO='DEPA'

--15. ¿Cuántos empleados hay en el departamento número 1? select count(*) from EMPLEADO where N_DEPARTAMENTO = 1

--16. ¿Cuántos empleados hay en el departamento de ‘DEPAUNO’? select count(*) from EMPLEADO, DEPARTAMENTO where NOMBRE_DEPARTAMENTO='DEPAUNO'

--17. Calcula el número de empleados que no tienen comisión. select count(*) from EMPLEADO where comision is null

INSTITUTO TECNOLÓGICO SUPERIOR SUCRE

--18. Visualizar cuántos nombres de los empleados empiezan por la letra ‘A’. select count(*) from EMPLEADO where nombre like 'A%'

--19. Visualizar el número de empleados de cada departamento. select EMPLEADO.N_DEPARTAMENTO,count(*) from EMPLEADO, DEPARTAMENTO where EMPLEADO.N_DEPARTAMENTO=DEPARTAMENTO.N_DEPARTAMENTO group by EMPLEADO.N_DEPARTAMENTO

--20. Para cada oficio obtener la suma de salarios.

INSTITUTO TECNOLÓGICO SUPERIOR SUCRE select OFICIO, sum(SALARIO) from EMPLEADO group by OFICIO

--21. Mostrar los datos de los empleados cuyo salario sea mayor que la media de todos los salarios. select * from EMPLEADO where salario>(select avg(salario) from EMPLEADO)

--22. Seleccionar el nombre del empleado que tiene máximo salario. select nombre from EMPLEADO where salario=(select max(salario) from EMPLEADO)

INSTITUTO TECNOLÓGICO SUPERIOR SUCRE --23. Mostrar el nombre del empleado que tiene el salario más bajo. select nombre from EMPLEADO where salario=(select min(salario) from EMPLEADO)

--24. Mostrar los datos del empleado que tiene el salario más alto en el departamento de ‘DEPADOS’. select nombre from EMPLEADO,DEPARTAMENTO where EMPLEADO.N_DEPARTAMENTO= DEPARTAMENTO.N_DEPARTAMENTO and NOMBRE_DEPARTAMENTO='DEPADOS' and salario = (select max(salario) from EMPLEADO,DEPARTAMENTO where EMPLEADO.N_DEPARTAMENTO = DEPARTAMENTO.N_DEPARTAMENTO and NOMBRE_DEPARTAMENTO='DEPADOS')

INSTITUTO TECNOLÓGICO SUPERIOR SUCRE

--25. Visualizar el departamento con más empleados. select N_DEPARTAMENTO from EMPLEADO group by count(*) having count(*) = (select max(count(*)) from EMPLEADO group by N_DEPARTAMENTO)

--26. Visualizar el número de departamento que tenga más empleados cuyo oficio sea vendedor. select N_DEPARTAMENTO from EMPLEADO where oficio='VENDEDOR' group by N_DEPARTAMENTO having count(*) = (select max (count(*)) from EMPLEADO where oficio='VENDEDOR' group by N_DEPARTAMENTO)

INSTITUTO TECNOLÓGICO SUPERIOR SUCRE

--27. Mostrar el número de oficios distintos de cada departamento. select N_DEPARTAMENTO,count(*) from EMPLEADO group by N_DEPARTAMENTO, oficio

--28. Mostrar los departamentos que tengan más de dos personas trabajando en la misma profesión. select N_DEPARTAMENTO, count(*) from EMPLEADO group by N_DEPARTAMENTO, oficio having count(*) > 0

INSTITUTO TECNOLÓGICO SUPERIOR SUCRE

Ejemplos de modificación de base de datos: --1. Insertar en la tabla EMPLEADO un empleado con código 081- 2206780008U, --nombre ‘Pérez Luis Carlos’ de 32 años, oficio Analista, vive en Matagalpa, --fecha de alta en la empresa el 22-06-2001, su salario es C$ 15600, --no tiene comisión y pertenece al departamento 20. SELECT * FROM EMPLEADO insert into EMPLEADO(CODIGO_c,NOMBRE,EDAD,DIRECCION,OFICIO,FECHA_ALT,SALARIO,COMIS ION,N_DEPARTAMENTO) values('009','Pérez LuisCarlos','32','Matagalpa','Analista1','22-062001','15600',null,'4')

--2. Insertar en la tabla DEPARTAMENTO un departamento cuyo número sea 50, de nombre ‘GENERAL’ y cuya localización sea ‘Laborio’. insert into DEPARTAMENTO values(50,'General','Laborio')

INSTITUTO TECNOLÓGICO SUPERIOR SUCRE

--3. Insertar en la tabla DEPARTAMENTO un departamento cuyo número sea 60 y de nombre ‘PRUEBAS’. insert into DEPARTAMENTO(depto_no,nombre_depto) values(60,'Prueba')

--4. Insertar en la tabla PRUEBA los datos de los empleados que pertenecen al departamento número 30. insert into PRUEBA (select * from EMPLEADO where N_DEPARTAMENTO=4)

INSTITUTO TECNOLÓGICO SUPERIOR SUCRE

--5. Insertar en la tabla PRUEBA2 el codigo_c, número de departamento y salario de los empleados que pertenecen al departamento número 20. insert into PRUEBA2 (select codigo_c,depto_no,salario from EMPLEADO where N_DEPARTAMENTO = 2)

--6. Doblar el salario a todos los empleados del departamento 3. update EMPLEADO set salario = salario*2 where N_DEPARTAMENTO=3

INSTITUTO TECNOLÓGICO SUPERIOR SUCRE

--7. Cambiar todos los empleados del departamento número 3 al departamento número 2. update EMPLEADO set N_DEPARTAMENTO = 2 where N_DEPARTAMENTO = 3

--8. Incrementar en un 10% el sueldo de los empleados del departamento 1. update EMPLEADO set salario=salario*1.1 where N_DEPARTAMENTO=1

INSTITUTO TECNOLÓGICO SUPERIOR SUCRE --9. Cambiar la localidad del departamento número 2 a ‘Zaragoza’. update EMPLEADO set localizacion='Zaragoza' where N_DEPARTAMENTO = 2

--10. Igualar el salario de ‘Esquivel Jose’ al salario de ‘Esquivel Leonel Alfonso’, de la tabla PRUEBA. update EMPLEADO set salario = (select salario from PRUEBA where nombre=' Esquivel Leonel Alfonso ') where nombre=' Esquivel Jose'

INSTITUTO TECNOLÓGICO SUPERIOR SUCRE --11. En la tabla DEPARTAMENTO borrar el departamento número 40. SELECT * FROM EMPLEADO delete from DEPARTAMENTO where N_DEPARTAMENTO = 50

--12. En la tabla EMPLEADO borrar todos los empleados que sean del departamento 4 y sean ‘ANALISTAS1’. delete from EMPLEADO where N_DEPARTAMENTO = 4 and oficio='Analista1'

INSTITUTO TECNOLÓGICO SUPERIOR SUCRE --13. Borrar de la tabla EMPLEADO todos los empleados que no tengan comisión. delete from EMPLEADO where comision is null

Conclusiones: Con la realización de estos diferentes ejercicios de consultas, pude entender la manera de escribir con exactitud las sentencias, además de poder enlazar las tablas de acuerdo a su sentencia, además de aprender a ingresar datos a las tablas ya creadas por los usuarios, así, podre tener más facilidad a la hora de realizar mi propia base de datos. Recomendaciones: 

Realizar más ejercicios como estos para tener siempre la corriente de cómo hacer las consultas y no perdernos.



Investigar más acerca de los enlazamientos de las tablas



Conocer todas las sentencias y prepararnos para el trabajo final de defensa de nuestra base de datos.

Fuente de trabajo: Base de datos creada por ing. Alex Merino: (Create database EMPRESA)