ejercicios Query

Páginas: 13 (3192 palabras) Publicado: 3 de diciembre de 2014
Ejercicios tema: Las consultas multitabla


1 Listar las oficinas del este indicando para cada una de ellas su número, ciudad, números y nombres de sus empleados. Hacer una versión en la que aparecen sólo las que tienen empleados, y hacer otra en las que aparezcan las oficinas del este que no tienen empleados.
 
2 Listar los pedidos mostrando su número, importe, nombre del cliente, y ellímite de crédito del cliente correspondiente (todos los pedidos tienen cliente y representante).
 
3 Listar los datos de cada uno de los empleados, la ciudad y región en donde trabaja.
 
4 Listar las oficinas con objetivo superior a 600.000 pts indicando para cada una de ellas el nombre de su director.
 
5 Listar los pedidos superiores a 25.000 pts, incluyendo el nombre del empleado que tomóel pedido y el nombre del cliente que lo solicitó.
 
6 Hallar los empleados que realizaron su primer pedido el mismo día en que fueron contratados.
 
7 Listar los empleados con una cuota superior a la de su jefe; para cada empleado sacar sus datos y el número, nombre y cuota de su jefe.
 
8 Listar los códigos de los empleados que tienen una línea de pedido superior a 10.000 ptas o quetengan u na cuota inferior a 10.000 pts.
 

Solución ejercicios tema: Las consultas multitabla

Ejercicio 1


SELECT oficinas.oficina, ciudad, numemp, nombre
FROM oficinas INNER JOIN empleados ON oficinas.oficina = empleados.oficina
WHERE region = 'este'
Como la columna de emparejamiento oficinas.oficina es clave principal en la tabla oficinas, es mejor utilizar el JOIN que un productocartesiano. Emparejamos las dos tablas por el campo oficina. Las oficinas que no tengan empleados no salen (es un INNER).
Como queremos sólo las oficinas del este añadimos la cláusula WHERE con la condicion. El valor este debe ir entre comillas (es un valor alfanumérico).
Observar que en la lista de selección la columna oficina está cualificada (su nombre está precedido del nombre de la tabla), esnecesario cualificarla porque en las dos tablas existe una columna llamada oficina y el sistema no sabría cuál de las dos escoger.

SELECT oficinas.oficina, ciudad, numemp, nombre
FROM oficinas LEFT JOIN empleados ON oficinas.oficina = empleados.oficina
WHERE region = 'este'
Si queremos que también aparezcan las oficinas que no tienen empleados cambiamos INNER por LEFT (queremos todas lasoficinas y la tabla oficinas está a la izquierda de la palabra JOIN).
Ojo, si en la lista de selección ponemos empleados.oficina en vez de oficinas.oficina, en las filas de oficinas que no tienen empleados el número de oficina aparece nulo.

SELECT oficinas.oficina, ciudad, numemp, nombre
FROM empleados RIGHT JOIN oficinas ON oficinas.oficina = empleados.oficina
WHERE region = 'este'
EstaSELECT es equivalente a la anterior pero hemos cambiado LEFT por RIGHT porque ahora la tabla oficinas está a la derecha de la palabra JOIN.

Ejercicio 2


SELECT numpedido, importe, clientes.nombre AS cliente, limitecredito
FROM pedidos INNER JOIN clientes ON pedidos.clie = clientes.numclie
En este ejercicio no pueden haber pedidos sin cliente, y lo que nos interesa son los pedidos, luegotampoco tienen que aparecer los clientes que no tienen pedidos, por lo tanto utilizamos un INNER JOIN.
 
 

Ejercicio 3


SELECT empleados.*, ciudad, region
FROM empleados LEFT JOIN oficinas ON empleados.oficina = oficinas.oficina
Aquí hemos utilizado LEFT JOIN para que también salgan los empleados que no tienen oficina asignada.
Como queremos todos los datos del empleado utilizamosempleados.* para acortar.

Ejercicio 4


SELECT oficinas.*, nombre AS director
FROM empleados RIGHT JOIN oficinas ON empleados.oficina = oficinas.oficina
WHERE objetivo > 600000
Nos interesan las oficinas con objetivo superior a 600.000pts. luego nos tenemos que asegurar que salgan todas incluso si no tienen director asignado por eso utilizamos RIGHT JOIN.
En los valores numéricos no...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Query
  • query
  • query oracle
  • Query
  • Query
  • Query
  • query
  • Structure Query Language

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS