SQL I Empleados(dni, nombre, apellido, departamento) Departamentos(codigo, nombre, presupuesto) -- 1.- Obtener todos los datos de los empleados que se apellidan López y los que se apellidan Pérez. Select * from empleados where apellido like 'López' or like 'Pérez' -- 2.- Obtener todos los datos de los empleados que trabajan para el departamento 37 y para el departamento 77. Select * from empleados where departamento = 37 or departamento = 77 -- 3.- Obtener todos los datos de los empleados cuyo apellido comience por P. Select * from empleados where apellido like 'P%' -- 4.- Obtener el presupuesto total de todos los departamentos. Select SUM(presupuesto) from departamentos -- 5.- Obtener el número de empleados en cada departamento. Select departamento, Count(*) as total from empleados group by departamento -- 6.- Obtener un listado completo de empleados, incluyendo el nombre y apellidos del empleado, junto al nombre y presupuesto de su dpto. Select empleados.* , departamento.nombre, departamento.presupuesto from empleados , departamento where empleados.departamento = departamento.codigo -- 7.- Obtener los nombres y apellidos de los empleados que trabajen en departamentos, cuyo presupuesto sea mayor de 60k. select distinct nombre, apellidos from empleados, departamentos where empleados.departamento = departamento.codigo and presupuesto > 60000 -- 8.- Obtener los datos de los departamentos cuyo presupuesto es superior al presupuesto medio de todos los departamentos. Select * drom departamentos having presupuesto > avg(presupuesto) -- 9.- Obtener los nombres de los departamentos que tienen más de dos empleados. Select nombre from departamentos, empleados where empleados.departamento = departamento.codigo group by departamento having count(empleados.nombre)>2 Almacenes (codigo, lugar, capacidad) Cajas (numreferencia, contenido, valor, almacen) -- 1.- Obtener el valor medio de las cajas de cada almacen. -- 2.- Obtener los códigos de los almacenes en los cuales el valor medio de las cajas sea superior a 150€. -- 3.- Obtener el número de referencia de cada caja junto con el nombre de la ciudad en el que se encuentra. -- 4.- Obtener los códigos de los almacenes que están saturados (los almacenes donde el numero de cajas es superior a la capacidad) Piezas(codigo,nombre) Suministra(codigopieza, codProveedor,precio) Proveedores(id, nombre) -- 1.- Obtener el precio medio al que se nos suministran las piezas -- 2.- Obtener los nombres de los proveedores que suministran la pieza 1. -- 3.- Obtener los nombre de los proveedores que suministran las piezas más caras, indicando el nombre de la pieza y el precio al que la -- suministran. -- 4.- Obtener los nombres de las piezas suministradas por el proveedor cuyo código es HAL. Científicos(Dni, nombre) Asignado(cientifico, proyecto) Proyecto(id, nombre, horas) -- 1.- Obtener una relacion completa de los cientificos asignados a cada proyecto. Mostrar DNI, nombre del cientifico, identificador - -- del proyecto y nombre del proyecto. Select dni, cientifico.nombre, proyecto.id, proyecto.nombre from cientificos, asignado, proyecto where cientificos.dni = asignado.cientifico AND asignado.proyecto=proyecto.id -- 2 .- Obtener el número de proyectos (mayor que 0) al que está asignado cada cientifico (mostrar el DNI y el nombre) select *, count(proyecto) from cientifico, asignado where cientificos.dni = asignado.cientifico group by cientifico -- 3.- Obtener el DNI y nombre de los cientificos que se dedican a más de un proyecto y cuya dedicación media a cada proyecto sea -- ---- superior a 80 horas. Select * from cientificos, asignado, proyecto where cientifico.dni=asignado.cientifico AND asignado.proyecto = proyecto.id group by dni having avg(horas)>80