Documente Academic
Documente Profesional
Documente Cultură
Daniel Santiago
Crear la base de datos que se muestra a continuacin, con los datos
correspondientes, y realizar las consultas propuestas en lenguaje SQL.
Base de datos Empresa I+D
Descripcin de los atributos de las tablas
Tabla Departamento
num_dpt
INTEGER
Llave
nombre_dpt
VARCHAR(20)
planta
INTEGER
edificio
VARCHAR(30)
ciudad_dpt
VARCHAR(20)
Tabla Proyecto
num_proy
INTEGER
nombre_proy VARCHAR(10)
producto
VARCHAR(20)
presupuesto
INTEGER
Tabla Empleado
num_empl
INTEGER
Llave
nombre_empl VARCHAR(30)
sueldo
INTEGER
ciudad_empl
VARCHAR(20)
num_dpt
INTEGER
Llave
num_proy
INTEGER
primaria
Llave primaria
primaria
fornea
Llave fornea
Pg 1 de 6
into
into
into
into
into
into
into
into
into
into
into
Empleado
Empleado
Empleado
Empleado
Empleado
Empleado
Empleado
Empleado
Empleado
Empleado
Empleado
values
values
values
values
values
values
values
values
values
values
values
Consultas:
Q1.- Obtener el nombre y el sueldo de los empleados con num_dpt 1, 2 o 3.
select nombre_empl, sueldo
from Empleado
where num_dpt IN (1, 2, 3)
Q2.- Obtener los nombres de los empleados del departamento nmero 5 y del
edificio donde trabajan.
select e.nombre_empl, d.edificio
from Empleado e, Departamento d
where e.num_dpt = d.num_dpt AND e.num_dpt = 5
Q4.- Obtener por orden alfabtico descendiente los nombres de los empleados
que ganan ms de 20.000 .
select nombre_empl
from Empleado
where sueldo > 20000
order by nombre_empl DESC
Q6.- Obtener todos los nmeros y los nombres de los empleados que no son
del departamento nmero 1 y que trabajan en Barcelona.
select e.num_empl, e.nombre_empl
from Empleado e, Departamento d
where e.num_dpt <> 1 AND e.num_dpt = d.num_dpt AND d.ciudad = 'BARCELONA'
Pg 2 de 6
Q8.- Obtener los nombres de los empleados que ganan ms que el empleado
nmero 3.
select e.nombre_empl
from Empleado e, Empleado e1
where e1.num_empl = 3 AND e.sueldo > e1.sueldo
Q10.- Obtener los nmeros y los nombres de los proyectos que no tienen
ningn empleado asignado.
select p.num_proy, p.nombre_proy
from Proyecto p
where p.num_proy NOT IN (select e.num_proy from empleado e)
Q11.- Obtener los nombres de los departamentos que tienen empleados que
trabajan en el proyecto IBDTEL.
select distinct d.nombre_dpt
from Departamento d, Empleado e, Proyecto p
where d.num_dpt = e.num_dpt AND e.num_proy = p.num_proy AND p.nombre_proy
= 'IBDTEL'
Q13.- Obtener los nmeros y los nombres de los departamentos que tienen 2 o
ms empleados en el proyecto 1.
select d.num_dpt, d.nombre_dpt
from Departamento d, Empleado e
where e.num_dpt = d.num_dpt AND e.num_proy = 1
group by d.num_dpt, d.nombre_dpt
having COUNT(*) >= 2
Q14.- Obtener los nmeros y los nombres de los proyectos que tienen
asignados ms de 2 empleados.
select p.num_proy, p.nombre_proy
from Proyecto p, Empleado e
where e.num_proy = p.num_proy
group by p.num_proy, p.nombre_proy
having COUNT(*) > 2
Q15.- Obtener los productos que tienen asignados los empleados del
departamento nmero 1.
select distinct p.producto
from Proyecto p, Empleado e
where e.num_proy = p.num_proy AND e.num_dpt = 1
p.num_proy
AND
e.num_dpt
Pg 3 de 6
Q21.- Obtener los nombres de las ciudades donde viven empleados pero no
hay ningn departamento.
select distinct e.ciudad_empl
from Empleado e
where e.ciudad_empl NOT IN (select d.ciudad_dpt from Departamento d)
Pg 4 de 6
Q26.- Obtener los datos de todos los empleados completados con los datos del
proyectos al que estn asignados.
select *
from Empleado e, Proyecto p
where e.num_proy = p.num_proy
Q27.- Obtener los empleados que viven en Madrid, que tienen un sueldo
superior o igual a 35.000 y que estn asignados a un proyecto que no es el
proyecto IBDTEL. Se quieren todos los datos de los empleados completados
con los datos del proyecto al que estn asignados.
select *
from Empleado e, Proyecto p
where e.num_proy = p.num_proy AND e.ciudad_empl = 'MADRID' AND e.sueldo
>= 35000 AND p.nombre_proy <> 'IBDTEL'
Q30.- Obtener los departamentos que tienen algn empleado que vive en
Madrid. Concretamente, se pide el nmero y el nombre de los departamentos y
el sueldo promedio de los empleados que trabajan.
select d.num_dpt, d.nombre_dpt, AVG(e1.sueldo) AS 'Sueldo medio'
from Departamento d, Empleado e, Empleado e1
where e.num_dpt = d.num_dpt AND e.ciudad_empl = 'MADRID' AND e1.num_dpt =
d.num_dpt
group by d.num_dpt, d.nombre_dpt
Pg 5 de 6
d.nombre_dpt
d
(select * from Empleado e where e.num_dpt = d.num_dpt
= 'MADRID')
Q39.- Borrar los empleados que estn asignados a los departamentos situados
en el edificio Pau Claris de Barcelona.
delete from Empleado
where num_empl IN (select e.num_empl
from Empleado e, Departamento d
where e.num_dpt = d.num_dpt AND d.edificio = 'PAU CLARIS')
Pg 6 de 6