Consultas com

7
HABITUALMENTE CUANDO NECESITAMOS RECUPERAR LA INFORMACIÓN DE UNA BASE DE DATOS NOS ENCONTRAMOS CON QUE DICHA INFORMACIÓN SE ENCUENTRA REPARTIDA EN VARIAS TABLAS, REFERENCIADAS A TRAVÉS DE VARIOS CÓDIGOS. DE ESTE MODO SI TUVIERAMOS UNA TABLA DE VENTAS CON UN CAMPO CLIENTE, DICHO CAMPO CONTENDRÍA EL CÓDIGO DEL CLIENTE DE LA TABLA DE CLIENTE. SIN EMBARGO ESTÁ FORMA DE ALMACENAR LA INFORMACIÓN NO RESULTA MUY ÚTIL A LA HORA DE CONSULTAR LOS DATOS. SQL NOS PROPORCIONA UNA FORMA FÁCIL DE MOSTRAR LA INFORMACIÓN REPARTIDA EN VARIAS TABLAS, LAS CONSULTAS COMBINADAS O JOINS. Consultas combinadas

Transcript of Consultas com

Page 1: Consultas com

      HABITUALMENTE CUANDO NECESITAMOS RECUPERAR LA INFORMACIÓN DE UNA BASE DE DATOS NOS ENCONTRAMOS CON QUE DICHA INFORMACIÓN SE ENCUENTRA REPARTIDA EN VARIAS TABLAS, REFERENCIADAS A TRAVÉS DE VARIOS CÓDIGOS. DE ESTE MODO SI TUVIERAMOS UNA TABLA DE VENTAS CON UN CAMPO CLIENTE, DICHO CAMPO CONTENDRÍA EL CÓDIGO DEL CLIENTE DE LA TABLA DE CLIENTE.         S IN EMBARGO ESTÁ FORMA DE ALMACENAR LA INFORMACIÓN NO RESULTA MUY ÚTIL A LA HORA DE CONSULTAR LOS DATOS. SQL NOS PROPORCIONA UNA FORMA FÁCIL DE MOSTRAR LA INFORMACIÓN REPARTIDA EN VARIAS TABLAS, LAS CONSULTAS COMBINADAS O JOINS.

Consultas combinadas

Page 2: Consultas com

    Las consultas combinadas pueden ser de tres tipos

Combinación interna

Combinación externa

Uniones

Page 3: Consultas com

NOS PERMITE MOSTRAR LOS DATOS DE DOS O MÁS TABLAS A TRAVÉS DE UNA CONDICIÓN .

PARA REALIZAR LA CONSULTA COMBINADA ENTRE ESTAS DOS TABLAS DEBEMOS ESCRIBIR UNA

CONSULTA SELECT   EN CUYA CLAÚSULA FROM ESCRIBIREMOS EL NOMBRE DE LAS DOS TABLAS,

SEPARADOS POR COMAS, Y UNA CONDICIÓN WHERE QUE OBLIGUE A QUE EL CÓDIGO DE MARCA DE

LA TABLA DE COCHES SEA IGUAL AL CÓDIGO DE LA TABLA DE MARCAS.

Combinación interna

Page 4: Consultas com

LA COMBINACIÓN INTERNA ES EXCLUYENTE. ESTO QUIERE DECIR QUE SI UN REGISTRO NO CUMPLE LA CONDICIÓN DE COMBINACIÓN NO SE INCLUYE EN LOS RESULTADOS. DE ESTE MODO EN EL EJEMPLO ANTERIOR SI UN COCHE NO TIENE GRABADA LA MARCA NO SE DEVUELVE EN MI CONSULTA.      SEGÚN LA NATURALEZA DE NUESTRA CONSULTA ESTO PUEDE SER UNA VENTAJA , PERO EN OTROS CASOS SIGNIFICA UN SERIO PROBLEMA. PARA MODIFICAR ESTE COMPORTAMIENTO SQL PONE A NUESTRA DISPOSICIÓN LA COMBINACIÓN EXTERNA. LA COMBINACIÓN EXTERNA NO ES EXCLUYENTE.

Combinación Externa

Page 5: Consultas com

La sintaxis es muy parecida a la combinación interna,

SELECT [ALL | DISTINCT ]             <nombre_campo> [{,<nombre

campo>}]FROM <nombre_tabla> 

[{LEFT|RIGHT OUTER JOIN  <nombre_tabla> ON <condicion_combinacion>}]

[WHERE <condicion> [{ AND|OR <condicion>}]]

[GROUP BY <nombre_campo> [{,<nombre_campo >}]]

[HAVING <condicion>[{ AND|OR <condicion>}]]

[ORDER BY <nombre_campo>|<indice_campo> [ASC | DESC]

                  [{,<nombre_campo>|<indice_campo> [ASC | DESC ]}]]

Page 6: Consultas com

C O M O M E J O R S E V E L A C O M B I N A C I Ó N E X T E R N A E S C O N U N E J E M P L O.

S E L E C T T C O C H E S. M AT R I C U L A ,               T M A R C A S. M A R C A ,  

              T C O C H E S. M O D E L O,               T C O C H E S. C O L O R ,  

              T C O C H E S. N U M E R O _ K I L O M E T R O S,                T C O C H E S. N U M _ P L A Z A S

F R O M T C O C H E SL E F T O U T E R J O I N   T M A R C A S O N T C O C H E S. M A R C A =

T M A R C A S. C O D I G O      E S TA C O N S U LTA D E V O LV E R Á T O D O S L O S R E G I S T R O S D E L A

TA B L A T C O C H E S, I N D E P E N D I E N T E M E N T E D E Q U E T E N G A N M A R C A O N O.   E N E L C A S O D E Q U E E L C O C H E N O T E N G A M A R C A

S E D E V O LV E R Á E L VA L O R N U L L   PA R A L O S C A M P O S D E L A TA B L A T M A R C A S .

    La combinación 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 situemos a la izquierda de la clausula JOIN, mientras que con RIGHT OUTER JOIN obtenemos el efecto contrario.

Page 7: Consultas com

      LA CLÁUSULA UNION PERMITE UNIR DOS O MÁS CONJUNTOS DE RESULTADOS EN UNO DETRAS DEL OTRO COMO SI SE TRATASE DE UNA ÚNICA TABLA . DE ESTE MODO PODEMOS OBTENER LOS REGISTROS DE MAS DE UNA TABLA "UNIDOS" . LA S INTAXIS CORRESPONDE A  LA DE  VARIAS  SELECT UNIDAS A TRAVÉS DE  UNION, COMO SE MUESTRA A CONTINUACIÓN: PARA UTIL IZAR LA CLAUSULA UNION DEBEMOS CUMPLIR UNA SERIE DE NORMAS.LAS CONSULTAS A UNIR DEBEN TENER EL MISMO NÚMERO CAMPOS, Y ADEMÁS LOS CAMPOS DEBEN SER DEL MISMO TIPO.SÓLO PUEDE HABER UNA ÚNICA CLAUSULA ORDER BY AL F INAL DE LA SENTENCIA SELECT.

Union