Consultas Multitablas

Páginas: 47 (11620 palabras) Publicado: 25 de octubre de 2015
Material de Clase SQL
Unidad 4. Consultas multitabla (I)
4.1. Introducción
Hasta ahora hemos visto consultas que obtienen los datos de una sola tabla, en este tema veremos
cómo obtener datos de diferentes tablas.
En esta parte ampliaremos la cláusula FROM y descubriremos nuevas palabras reservadas (UNION,
EXCEPT e INTERSECT) que corresponden a operaciones relacionales.
Para obtener datos devarias tablas tenemos que combinar estas tablas mediante alguna
operación basada en el álgebra relacional.
El álgebra relacional define una serie de operaciones cuyos operandos son tablas y cuyo resultado
es también una tabla.
Las operaciones de álgebra relacional implementadas en Transact-Sql son:
La unión UNION
La diferencia EXCEPT
La intersección INTERSECT
El producto cartesiano CROSS JOIN
Lacomposición interna INNER JOIN
La composición externa LEFT JOIN, RIGHT JOIN Y FULL JOIN
En todo el tema cuando hablemos de tablas nos referiremos tanto a las tablas que físicamente
están almacenadas en la base de datos como a las tablas temporales y a las resultantes de una
consulta o vista.

4.2. La unión de tablas UNION
La unión de tablas consiste en coger dos tablas y obtener una tabla con las filasde las dos tablas,
en el resultado aparecerán las filas de una tabla y, a continuación, las filas de la otra tabla.
Para poder realizar la operación, las dos tablas tienen que tener el mismo esquema (mismo
número de columnas y tipos compatibles) y la tabla resultante hereda los encabezados de la
primera tabla.
La sintaxis es la siguiente:
{< consulta >|(< consulta >)}
UNION [ALL]
{< consulta >|()}
[{UNION [ALL] {< consulta >|(< consulta >)}}[ ...n ] ]
[ORDER BY {expression_columna|posicion_columna [ASC|DESC]}

Magister Walter Moncada C.

Página 1

Material de Clase SQL

[ ,...n ]]

< consulta > representa la especificación de la consulta que nos devolverá la tabla a combinar.
Puede ser cualquier especificación de consulta con la limitación de que no admite la cláusula
ORDERBY, los alias de campo se pueden definir pero sólo tienen efecto cuando se indican en la
primera consulta ya que el resultado toma los nombres de columna de esta.
Ejemplo: Suponemos que tenemos una tabla Valencia con las nuevas oficinas de Valencia y otra
tabla Madrid con las nuevas oficinas de Madrid y queremos obtener una tabla con las nuevas
oficinas de las dos ciudades:
SELECT oficina as OFI,ciudad FROM Valencia
UNION ALL
SELECT oficina, ciudad FROM Madrid;
El resultado sería:
OFI

ciudad

11

Valencia

28

Valencia

23

Madrid

El resultado coge los nombres de columna de la primera consulta y aparecen primero las filas de la
primera consulta y después las de la segunda.
Si queremos que el resultado aparezca ordenado podemos incluir la cláusula ORDER BY, pero
después de la últimaespecificación de consulta, y expresion_columna será cualquier columna
válida de la primera consulta.
SELECT oficina as OFI, ciudad FROM Valencia
UNION
SELECT oficina, ciudad FROM Madrid
ORDER BY ofi;
OFI

ciudad

11

Valencia

23

Madrid

28

Valencia

Ahora las filas aparecen ordenadas por el número de oficina y hemos utilizado el nombre de
columna de la primera consulta.
Cuando aparezcan en elresultado varias filas iguales, el sistema por defecto elimina las
repeticiones.
Si se especifica ALL, el sistema devuelve todas las filas resultante de la unión incluidas las repetidas

Magister Walter Moncada C.

Página 2

Material de Clase SQL

El empleo de ALL también hace que la consulta se ejecute más rápidamente ya que el sistema no
tiene que eliminar las repeticiones.
Se pueden combinar variastablas con el operador UNION. Por ejemplo supongamos que tenemos
otra tabla Pamplona con las oficinas nuevas de Pamplona:
SELECT oficina, ciudad FROM Valencia
UNION
SELECT oficina, ciudad FROM Madrid
UNION
SELECT oficina, ciudad FROM Pamplona;
Combinamos las tres tablas.
Otro ejemplo:
Obtener todos los productos cuyo precio exceda de 20 € o que se haya vendido más de 300 euros
del producto en...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Consulta Multitabla
  • Consultas multitabla mysql
  • SQL-CONSULTAS MULTITABLAS
  • Consultas Multitablas
  • Consulta Multitablas
  • Consultas Multitabla
  • Sql consultas multitabla
  • CONSULTAS MULTITABLA Y FUNCIONES SOBRE LA BASE DE DATOS Empresa

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS