tsunamigue

SQL I

Jun 9th, 2014
373
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 3.85 KB | None | 0 0
  1. SQL I
  2.  
  3. Empleados(dni, nombre, apellido, departamento)
  4. Departamentos(codigo, nombre, presupuesto)
  5.  
  6. -- 1.- Obtener todos los datos de los empleados que se apellidan López y los que se apellidan Pérez.
  7.  
  8. SELECT * FROM empleados WHERE apellido LIKE 'López' OR LIKE 'Pérez'
  9.  
  10.  
  11. -- 2.- Obtener todos los datos de los empleados que trabajan para el departamento 37 y para el departamento 77.
  12.  
  13. SELECT * FROM empleados WHERE departamento = 37 OR departamento = 77
  14.  
  15.  
  16. -- 3.- Obtener todos los datos de los empleados cuyo apellido comience por P.
  17.  
  18. SELECT * FROM empleados WHERE apellido LIKE 'P%'
  19.  
  20. -- 4.- Obtener el presupuesto total de todos los departamentos.
  21.  
  22. SELECT SUM(presupuesto) FROM departamentos
  23.  
  24.  
  25. -- 5.- Obtener el número de empleados en cada departamento.
  26.  
  27. SELECT departamento, COUNT(*) AS total FROM empleados GROUP BY departamento
  28.  
  29.  
  30. -- 6.- Obtener un listado completo de empleados, incluyendo el nombre y apellidos del empleado, junto al nombre y presupuesto de su dpto.
  31.  
  32. SELECT empleados.* , departamento.nombre, departamento.presupuesto FROM empleados , departamento WHERE empleados.departamento = departamento.codigo
  33.  
  34. -- 7.- Obtener los nombres y apellidos de los empleados que trabajen en departamentos, cuyo presupuesto sea mayor de 60k.
  35. SELECT DISTINCT nombre, apellidos FROM empleados, departamentos WHERE empleados.departamento = departamento.codigo AND presupuesto > 60000
  36.  
  37.  
  38. -- 8.- Obtener los datos de los departamentos cuyo presupuesto es superior al presupuesto medio de todos los departamentos.
  39.  
  40. SELECT * drom departamentos HAVING presupuesto > avg(presupuesto)
  41.  
  42. -- 9.- Obtener los nombres de los departamentos que tienen más de dos empleados.
  43.  
  44. SELECT nombre FROM departamentos, empleados WHERE empleados.departamento = departamento.codigo GROUP BY departamento HAVING COUNT(empleados.nombre)>2
  45.  
  46.  
  47. Almacenes (codigo, lugar, capacidad)
  48. Cajas (numreferencia, contenido, valor, almacen)
  49.  
  50.  
  51. -- 1.- Obtener el valor medio de las cajas de cada almacen.
  52.  
  53.  
  54.  
  55.  
  56. -- 2.- Obtener los códigos de los almacenes en los cuales el valor medio de las cajas sea superior a 150€.
  57.  
  58.  
  59.  
  60.  
  61. -- 3.- Obtener el número de referencia de cada caja junto con el nombre de la ciudad en el que se encuentra.
  62.  
  63.  
  64.  
  65.  
  66. -- 4.- Obtener los códigos de los almacenes que están saturados (los almacenes donde el numero de cajas es superior a la capacidad)
  67.  
  68.  
  69.  
  70. Piezas(codigo,nombre)
  71. Suministra(codigopieza, codProveedor,precio)
  72. Proveedores(id, nombre)
  73.  
  74.  
  75. -- 1.- Obtener el precio medio al que se nos suministran las piezas
  76.  
  77.  
  78.  
  79.  
  80. -- 2.- Obtener los nombres de los proveedores que suministran la pieza 1.
  81.  
  82.  
  83.  
  84. -- 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.
  85.  
  86.  
  87.  
  88.  
  89. -- 4.- Obtener los nombres de las piezas suministradas por el proveedor cuyo código es HAL.
  90.  
  91.  
  92.  
  93.  
  94. Científicos(Dni, nombre)
  95. Asignado(cientifico, proyecto)
  96. Proyecto(id, nombre, horas)
  97.  
  98.  
  99. -- 1.- Obtener una relacion completa de los cientificos asignados a cada proyecto. Mostrar DNI, nombre del cientifico, identificador - -- del proyecto y nombre del proyecto.
  100.  
  101.  
  102. SELECT dni, cientifico.nombre, proyecto.id, proyecto.nombre FROM cientificos, asignado, proyecto
  103. WHERE cientificos.dni = asignado.cientifico AND asignado.proyecto=proyecto.id
  104.  
  105. -- 2 .- Obtener el número de proyectos (mayor que 0) al que está asignado cada cientifico (mostrar el DNI y el nombre)
  106.  
  107.  
  108. SELECT *, COUNT(proyecto) FROM cientifico, asignado WHERE cientificos.dni = asignado.cientifico GROUP BY cientifico
  109.  
  110. -- 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.
  111.  
  112.  
  113. SELECT * FROM cientificos, asignado, proyecto
  114. WHERE cientifico.dni=asignado.cientifico AND asignado.proyecto = proyecto.id
  115. GROUP BY dni HAVING avg(horas)>80
Advertisement
Add Comment
Please, Sign In to add comment