Consultas combinadas

7
 C onsul t as com bi na da s. C ua nd o n ecesi t am os con sul tar i nf or maci ón de un a b ase de da tos n os e ncontr am os q u e e n m uc h as o ca si o n es d i ch a i n f o r m a ci ó n se en cu en t ra re p a r t i d a e n var i as t a b l as, q u e t ie n en r e f e rencia e n tre si por u n cam p o ll ave . E st a form a d e a l m a ce n ar la in f o rm a ci ó n a ve ce s r e su lta p o co ú t il a la h o ra d e co n su lt a r l o s d a t o s. S Q L n o s p r o p orci o n a una f o r m a f á ci l d e m o st rar l a i n f or m a ci ó n re p a r t i d a e n va ri a s t a b l a s, l a s consultas combi na da s o J O I N S. La s con sul t as co m bi na da s pu ed en ser de do s ti po s: C o m b i n ación i n ter n a C ombi na ciónexter na C ombi na cióninter na . Lacombi na cióninterna no s p er mite m ostrar los da tos de do s o más t ablas a travé s d e una con di ci ón WH E R E , do nd e s e h ace l a r el aci ón con l os ca m p os l l ave . P ar a r ea l i zar l a co nsul t a co m binada en t r e e st as dos t ab l as d eb em os e scribir una consult a S ELE C T en cuya cl áusula F R O Mescribir em os el no mbr e de las do s t ablas, sep arados po r comas, y un a co ndi ci ón WH E R E qu e o bl i gu e a t om ar l os cam po s de l as l l aves. Lom ás se ncillo es ver un ej em pl o di rec t amente: S E LE CTtCarr o. m atri cu la, t M arca. m arca, t C arr o . m o d e l o , t C arr o . c ol o r, t C arr o . n u m ero kil o m etros, t C arr o . nu m _p l aza s F R O M t C arro, t Mar ca WH E R Et C ar ro. m arca = t M ar ca. codi go O t ra o p ci ó n es utili za r l a cl á u su la I N N E R JO I N . S u si n t a xi s e s i d en t icaa l a d e u n a co nsu lta S E LE C T habi t ual, conla pa rticularida d de qu e é n la cláusula FR O M sólo a p a rece u n a t a b l a o vi st a , a ñ a d i e n d ose e l re st o d e t a bl a s a t r avé s d e cl á u su l a s I N N E R JO IN.

description

Consultas sql

Transcript of Consultas combinadas

Consultas combinadas.Cuando necesitamos consultar informacin de una base de datos nos encontramos que en muchas ocasiones dicha informacin se encuentra repartida en varias tablas, que tienen referencia entre si por un campo llave. Esta forma de almacenar la informacin a veces resulta poco til a la hora de consultar los datos. SQL nos proporciona una forma fcil de mostrar la informacin repartida en varias tablas, las consultas combinadas o JOINS.Las consultas combinadas pueden ser de dos tipos: Combinacin interna Combinacin externaCombinacin interna.La combinacin interna nos permite mostrar los datos de dos o ms tablas a travs de una condicin WHERE, donde se hace la relacin con los campos llave. Para realizar la consulta combinada entre estas dos tablas debemos escribir una consulta SELECT en cuya clusula FROM escribiremos el nombre de las dos tablas, separados por comas, y una condicin WHERE que obligue a tomar los campos de las llaves.Lo ms sencillo es ver un ejemplo directamente:SELECT tCarro.matricula,tMarca.marca,tCarro.modelo,tCarro.color,tCarro.numero_kilometros,tCarro.num_plazasFROM tCarro, tMarcaWHERE tCarro.marca = tMarca.codigoOtra opcin es utilizar la clusula INNER JOIN. Su sintaxis es identica a la de una consulta SELECT habitual, con la particularidad de que n la clusula FROM slo aparece una tabla o vista, aadiendose el resto de tablas a travs de clusulas INNER JOIN .SELECT [ALL | DISTINCT ][{,}]FROM[{INNER JOIN ON }][WHERE [{ AND|OR }]][GROUP BY [{,}]][HAVING [{ AND|OR }]][ORDER BY | [ASC | DESC][{,| [ASC | DESC ]}]]La clusula INNER JOIN permite separar completamente las condiciones de combinacin con otros criterios, cuando tenemos consultas que combinan nueve o diez tablas esto es realmente til.Combinacin ExternaLa combinacin interna es excluyente. Esto quiere decir que si un registro no cumple la condicin de combinacin no se incluye en los resultados. Segn la naturaleza de nuestra consulta esto puede ser una ventaja, pero en otros casos significa un problema. Para modificar este comportamiento SQL pone a nuestra disposicin la Combinacin Externa. La combinacin externa no es excluyente.La sintaxis es muy parecida a la combinacin interna,SELECT [ALL | DISTINCT ][{,}]FROM[{LEFT|RIGHT OUTER JOIN ON }][WHERE [{ AND|OR }]][GROUP BY [{,}]][HAVING [{ AND|OR }]][ORDER BY | [ASC | DESC][{,| [ASC | DESC ]}]]La combinacin externa puede ser diestra o siniestra, LEFT OUTER JOIN o RIGHT OUTER JOIN. Con LEFT OUTER JOIN obtenemos todos los registros de en la tabla que se enecuentren a la izquierda de la clausula JOIN, mientras que con RIGHT OUTER JOIN obtenemos el efecto contrario.Combina los resultados de dos o ms consultas en un solo conjunto de resultados que incluye todas las filas que pertenecen a las consultas de la unin.La operacin UNION es distinta de la utilizacin de combinaciones de columnas de dos tablas.A continuacin se muestran las reglas bsicas para combinar los conjuntos de resultados de dos consultas con UNION: El nmero y el orden de las columnas debe ser el mismo en todas las consultas. Los tipos de datos deben ser compatibles.

UNIONConvenciones de sintaxis de Transact-SQLSintaxis{ | ( ) } UNION [ ALL ]