Joins

Páginas: 6 (1462 palabras) Publicado: 21 de mayo de 2011
UNIVERSIDAD AUTONOMA DE NUEVO LEON

FACULTAD DE INGENIERIA MECANICA Y ELECTRICA

Base de datos y Lenguajes

______________________________

José Eduardo González Badillo Mat: 1383800

José de Jesús Mireles Hernández Mat: 1119642

Hora: N4
Salón: 2301


San Nicolás de los Garza. NL. 11-Mayo-2011
JOIN
La sentencia join en SQL permitecombinar registros de dos o más tablas en una base de datos relacional. En el Lenguaje de Consultas Estructurado (SQL), hay tres tipo de JOIN: interno, externo, y cruzado.
En casos especiales una tabla puede unirse a sí misma, produciendo una auto-combinación, SELF-JOIN.
Matemáticamente, JOIN es composición relacional, la operación fundamental en el álgebra relacional, y generalizando es unafunción de composición.

Consultas combinadas.
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 tuviéramos 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.
    Las consultas combinadas pueden ser de tres tipos:
* Combinación interna
* Combinación externa
* Uniones
Combinación interna.
    La combinación internanos permite mostrar los datos de dos o más tablas a través de una condición WHERE.
    Si recordamos los ejemplos de los capítulos anteriores tenemos una tabla de coches, en la que tenemos referenciada la marca a través del código de marca. Para realizar la consulta combinada entre estas dos tablas debemos escribir una consulta SELECT  en cuya cláusula FROM escribiremos el nombre de las dostablas, 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.
    Lo más sencillo es ver un ejemplo directamente:

SELECT tCoches.matricula,
              tMarcas.marca, 
              tCoches.modelo,
              tCoches.color, 
              tCoches.numero_kilometros,               tCoches.num_plazas
FROM tCoches, tMarcas
WHERE tCoches.marca = tMarcas.codigo |
    La misma consulta de forma "visual"

    Demonos cuenta que hemos antepuesto el nombre de cada tabla al nombre del campo, esto no es obligatorio si los nombres de campos no se repiten en las tablas, pero es aconsejable para evitar conflictos de nombres entre campos. Por ejemplo, si para referirnos al campo marca noanteponemos el nombre del campo la base de datos no sabe si queremos el campo marca de la tabla tCoches, que contiene el código de la marca, o el campo marca de la tabla tMarcas, que contiene el nombre de la marca.
    Otra opción es utilizar la cláusula INNER JOIN. Su sintaxis es idéntica a la de una consulta SELECT habitual, con la particularidad de que en la cláusula FROM sólo aparece una tablao vista, añadiéndose el resto de tablas a través de cláusulas INNER JOIN.

SELECT [ALL | DISTINCT ]
             <nombre_campo> [{,<nombre_campo>}]
FROM <nombre_tabla> 
[{INNER 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 ]}]] |
 
   El ejemplo anterior escrito utilizando la clausula INNER JOIN  quedaría de la siguiente manera:

SELECT tCoches.matricula,
       tMarcas.marca, ...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • joins
  • Joins
  • Tipos de joins
  • Joins Y Ejemplos
  • Joins
  • sql joins serves
  • joins sql server
  • Clase subconsultas joins

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS