Sunteți pe pagina 1din 6

Introduccin

En este tema vamos a estudiar las consultas multitabla llamadas as porque estn basadas en ms de una tabla. El SQL de Microsoft Jet 4.x soporta dos grupos de consultas multitabla: - la unin de tablas - la composicin de tablas

La unin de tablas
Esta operacin se utiliza cuando tenemos dos tablas con las mismas columnas y queremos obtener una nueva tabla con lasfilas de la primera y las filas de la segunda. En este caso la tabla resultante tiene las mismas columnas que la primera tabla (que son las mismas que las de la segunda tabla). Por ejemplo tenemos una tabla de libros nuevos y una tabla de libros antiguos y queremos una lista con todos los libros que tenemos. En este caso las dos tablas tienen las mismas columnas, lo nico que vara son las filas, adems queremos obtener una lista de libros (las columnas de una de las tablas) con las filas que estn tanto en libros nuevos como las que estn en libros antiguos, en este caso utilizaremos este tipo de operacin. Cuando hablamos de tablas pueden ser tablas reales almacenadas en la base de datos o tablas lgicas (resultados de una consulta), esto nos permite utilizar la operacin con ms frecuencia ya que pocas veces tenemos en una base de datos tablas idnticas en cuanto a columnas. El resultado es siempre una tabla lgica. Por ejemplo queremos en un slo listado los productos cuyas existencias sean iguales a cero y tambin los productos que aparecen en pedidos del ao 90. En este caso tenemos unos productos en la tabla de productos y los otros en la tabla de pedidos, las tablas no tienen las mismas columnas no se puede hacer una union de ellas pero lo que interesa realmente es el identificador del producto (idfab,idproducto), luego por una parte sacamos los cdigos de los productos con existencias cero (con una consulta), por otra parte los cdigos de los productos que aparecen en pedidos del ao 90 (con otra consulta), y luego unimos estas dos tablas lgicas. El operador que permite realizar esta operacin es el operador UNION.

La composicin de tablas

La composicin de tablas consiste en concatenar filas de una tabla con filas de otra. En este caso obtenemos una tabla con lascolumnas de la primera tabla unidas a las columnas de la segunda tabla, y las filas de la tabla resultante son concatenacionesde filas de la primera tabla con filas de la segunda tabla. El ejemplo anterior quedara de la siguiente forma con la composicin:

A diferencia de la unin la composicin permite obtener una fila con datos de las dos tablas, esto es muy til cuando queremos visualizar filas cuyos datos se encuentran en dos tablas.

Por ejemplo queremos listar los pedidos con el nombre del representante que ha hecho el pedido, pues los datos del pedido los tenemos en la tabla de pedidos pero el nombre del representante est en la tabla de empleados y adems queremos que aparezcan en la misma lnea; en este caso necesitamos componer las dos tablas (Nota: en el ejemplo expuesto a continuacin, hemos seleccionado las filas que nos interesan).

Consulta multitablas
Reunin de tablas es el proceso de la formacin de pares de filas correponden al contenidode las columnas relacionadas Reunin de dos tablas. Contiene datos de tablas originales Equirreunin. Es la correpondencia exacta entre dos reuniones. Las reuniones es un proceso de consulta multitabla que maneja SQL en la condicin de bsqueda con la instruccin SELECT especificando el encaje la correspondencia de columnas. La base de datos relacional almacena datos de las columnas de las relaciones entre tablas haciendo corresponder los contenidos de las columnas relacionadas incorporadas en la base de datos no tienen mecanismos para relacin de filas, el nico mecanismo es la relacin de datos entre tablas . Las consultas multitablas mas comnes involucran dos tablas que una relacin natural Padre/Hijo. La relacin Padre/Hijo en una consulta debe especificarse con una condicin de bsqueda comparando la clave (es el hijo de la relacin) y primaria(Padre) de la relacin de base de datos de SQL. La consulta multitabla especifica las columnas conicidentes de una condicin de bsqueda que pueden combinarse con otras condiciones de bsqueda para limitar el contenido de los resultados . Las reuniones multicolumnaque incluyen dos tablas son menos comunes que las reuniones de una nica collumna incluyendo tambin claves externas en una consulta, no hay limite para el nmero de columnas incluida en la condicin de encaje, pero las reuniones de las entidades representadas en las tablas de base de datos que se encuentra en una o slo algunas columnas de las tablas. SQL puede combinar datos de tres o ms tablas usando tcnicas bsicas de las consultas de dos tablas . La relacin varios a varios y uno a varios es diferente de la relacin creada las columnas coincidentes de la clave primaria y externa, la instruccin SELECT debe escribir la expresin correcta de la columna.

Las reuniones que encajan las claves primarias sonlas claves esternas siempre producen relaciones padre/hijo uno a varios.

Otras reuniones tambin pueden generar relaciones uno a varios si la columna coincide en al menos una de las tablas nicos en todas las filas de las tablas. En general la reunin de las columnas coincidentes albitrarias generan relaciones varios a varios.

SQL permite reunir tablas en trminos de otros operadores de comparacin. La relacin de igualdad no son comunes son tiles para la toma de decisiones y otras aplicaciones mas complejas en la base de datos. En la siguiente seccin se expresan algunas caracteristicas de las consultas multitabla del lenguaje SQL. o Los nombres calificados de las columnas se necesitan a veces en consultas multitabla para eliminar referencias ambiguas a columnas.

Las selecciones de todas las columnas (SELECT*) tienen un significado especial para las consultas multitablas.

Las autoreuniones se pueden usar para crear consultas que la relacione una tabla consigo misma.

Las alias de tablas se pueden usar en la clusula FROM para simplificar los nombres calificados de columnas y permite referencias no ambiguas o columnas en las autocorrecciones.

El nombre calificado de columnas se puede usar en cualquier lugar de la instruccin SELECT que permite un nombre de columna, la tbla especificada en la columna calificada debe coincidir con algunas de las tablas especificadas en la lista FROM. La desventaja es que el texto de la consulta sea mayor. SQL interactivo hace una consulta sin nombres calificados, y deja que SQL encuentre columnas ambiguas, si SQL informa de un error se edita la consulta para calificar las columnas ambiguas. SELECT se puede usar para las colum,nas de la tabla nombrada en la clusula FROM. SQL trata el asterisco(*) como una clase especial de nombre de columna comodn o un nombre de una tabla calificada. Las consultas multitablas incluyen una relacin de una tabla que tiene consigo misma, no permite duplicar contenido de las tablas, SQL solamente hace refencia de un nombre diferente denominado alias de tablas.En las consultas con autoreuniones son requeridas las aliasde tablas. La clusula FROM identifica todas las tablas que aportan datos a los resultados de la consultas . Cualquier columna referenciada en la instruccin SELECT puede venir de una de las tablas listadas en la consulta de la clusula FORM.

La clusula FROM especifica la etiqueta que se usa para identificar las tablas en las referencias calificada a columnas dentro de la instruccion SELECT. Si se especificaen las alias de la tabla, se convierte en una etiqueta de la tabla, en caso contrario el nombre de la tabla, tal como aparece en la clausula FROM es el que se convierte en una etiqueta. El requisito para las etiquetas de las tablas es que sean distintas entre si.SQL permite que la clave AS aparezca entre el nombre de la tabla y su alias.

El lenguaje SQL noimpone un nmero de tablas reunidas en consulta, algunos productos de SQL, si limitan el nmero de tablas. Las aplicaciones de procesamiento interactivo de transacciones (OLTP,ONLINE TRANSATION PROCESSING) es comn que contenga solo una o dos tablas. El usuario introduce uno o dos tablas y necesita una respuesta de la bse de datos en segundo o dos para tener una buena toma de decisiones en las aplicaciones de los resultados de laconsulta que se lleva mas tiempo requiere de minutos o incluso hasta de horas debido a las complejas relaciones de la base de datos. La estructura de un join es saber determinar el uso de la instrucin SELECT saber que es una reunin que deberia usarse en la reunion de varias tablas, las condiciones de bsqueda, los resultados producidos y conocer la teoria de la base de datos realcionales sobre las reuniones. La multiplicacin de las tablas es el producto de dos tablas es otra tabla que consiste en todos los posibles pares de filas de dos tablas. Se podria decir que las filas eliminadas son precisamente las que cumplen con la condicin de las columnas coincidentes en la reunin, el producto es parte de la definicin formal del procesamiento de SQL de una consulta multitabla Reglas para el procesamiento consultas multitablas, Si la instruccin es una UNION de instrucciones SELECT aplica los pasos 2 al 5 a cada una de las instrucciones para generar sus resultados individuales.

Si se especifica SELECT DISTINCT, elimina todas las filas duplicadas del resultado que se hubiera producido.

Si la instruccin es una UNION de instrucciones SELECT, mezcla los resultados de la instrucciones individuales en una nica tabla de resultados. Eliminando las filas duplicadas a menos que se especifique UNION ALL.

Si hay una clusula ORDEN BY, ordena los resultados como se especifique

Esto es lo que produciria una consulta multitabla de resulatdos.

La reunin externa (outer join ) denominada a veces reunion interna, es una parte bien asimilada y til del modelo de datos relacional, y expresin a cierto tipo de consulta se implemento en muchos productos de SQL de marcas diferentes de IBM com Microsoft, Sybase, Oracle e Informix. Procedimiento para la construccin de la reunion externa: Empezar con la reunion interna de las dos tablas usando las columnas coincidentes de la forma usual.

Para cada fila de la primera tabla que no coincida con ninguna de la segunda. anadir una fila alos resultados los valores de las columnas de la primera tabla y asumir un valor NULL para todas las columnas de la segunda tabla.

Para cada fila de la segunda tabla que no coincide con ninguna de la fila de la primera tabla, aadir una fila de resultado usando los valores de las columnas de la segunda tabla y asumiendo un valor NULL para todas las columnas de la primera tabla.

La tabla resultante es la union externa de dos tablas.

La unin externa por la izquierda de dos tablas se puden producir los siguientes pasos 1 y 2 de la lista enumerada anterior. pero omitiendo el paso 3., incluyendo copias rellenas con valores NULL de las filas que no encajan en la primera tabla (izquierda), pero incluyendo las filas que no encajen de la segunda (derecha).

S-ar putea să vă placă și