Informe Head First SQL
Joins and multi-table operations
              Integrantes: D. Canales
                     H. Medina
                     R. Medina
                     H. Painen
               Ingeniería Informática
               Facultad de Ingeniería
     Departamento de Ingeniería en Informática
         Profesores: Oscar Guzmán Matus
             Gustavo Donoso Montoya
          Universidad Católica de Temuco.
Índice

Índice ..................................................................................................................................2

Introducción ........................................................................................................................3

   INNER JOIN ......................................................................................................................4

   EQUI-JOIN ........................................................................................................................5

   NATURAL JOIN..................................................................................................................5

   CROSS JOIN ......................................................................................................................6

   OUTER JOIN ...............................................................................................................................................................7

   LEFT OUTER JOIN ..............................................................................................................7

   RIGHT OUTER JOIN ...........................................................................................................8

   FULL OUTER JOIN..............................................................................................................9

Conclusión .........................................................................................................................10

Referencia .........................................................................................................................12




                                                                                     2
Introducción


Una base de datos es una forma de agrupar datos ordenándolos de forma eficaz, con
MySQL hemos aprendido como crearla, como modificarla, como lograr que nuestra
base de datos sea eficiente, pero para realizar lo dicho anteriormente debíamos
respetar unas reglas las cuales eran las de normalización, pero un gran drama para
nosotros era como se puede combinar 2 o mas tablas y para ello recurrimos al capitulo
8 del libro head first de MySQL el cual presentaremos a continuación y se abordaran
temas como el uso de la sentencia JOIN la cual nos permite combinar dos o más tablas
en una base de datos relacional. Esta se subdivide en 8 tipos: inner JOIN, equi -JOIN,
natural JOIN, cross JOIN, outer JOIN, left JOIN, right JOIN y finalmente full outer JOIN y
ahora los invitamos a leer el siguiente informe en el cual se aplican algunas de las
sentencias join mencionadas.




                                            3
INNER JOIN

Con este comando se calculan los productos cruzados de todos los registros, así que
todos los registros de la tabla 1 es combinado con cada registro de la tabla 2, pero
solo se proyectan por pantalla aquellos registros que satisfacen las condiciones que se
especifiquen.
A continuación tenemos la tabla 1 y la tabla2.




Tabla 1




Tabla 2




La forma común de realizarlo es la siguiente (explicita)


                                       Comando 1

Y como resultado mostrara:




                                       Proyección 1




También existe la forma implícita lo que nos daría el mismo resultado




Comando 2




                                            4
EQUI-JOIN

Esta sentencia se refiere a la equivalencia entre las tablas seleccionadas, cabe
mencionar que es muy parecido respecto a la sentencia INNER JOIN pero se diferencia
que se pueden usar operadores como < o > como muestra a continuación



Comando 3




Lo que proyectara:




Proyección 2




Así como también podemos probar con operador opuesto




Comando 4

Lo que nos proyecta una tabla con 17 filas a diferencia de su operador opuesto que nos
arroja 12 filas.




                                          5
NATURAL JOIN

Este comando es muy útil porque se comparan todas las columnas que tengan
nombres idénticos en ambas tablas y como resultado muestra solo una
columna si es repetida.


A continuación les indicaremos la forma de realizar el comando

Comando 5

Lo que proyectaría:




Proyección 3




CROSS JOIN
Este comando presenta un producto cartesiano de todos los registros de las tablas
seleccionadas, pero tiene un inconveniente ya que no se pueden exponer excepciones
en su resultado.

Forma explicita

Comando 6




Forma implícita

Comando 7




Esto arrojo como resultado una tabla con 25 filas, y por motivos obvios no la
mostraremos para no deformar el informe.




                                           6
OUTER JOIN
Esta operación no requiere que los registros de las tablas a emplear posean un registro
equivalente entre ellas. El registro se mantiene en la tabla combinada si no existe otro
registro idéntico que le corresponda.

Esta operación se subdivide en tres tipos dependiendo de la tabla a la cual se le
admitan los registros que no tienen correspondencia, tal que sean de la tabla
izquierda(LEFT OUTER JOIN), de la tabla derecha(RIGHT OUTER JOIN) o una
combinación completa(FULL OUTER JOIN).




LEFT OUTER JOIN
El resultado de esta operación proyecta los registros de la tabla izquierda en la
consulta y las parejas entre la tabla de la izquierda y la tabla derecha o retorna un
valor NULL en caso de que no corresponda.




Comando 8




Proyección 4




En este caso no muestra valores nulos ya que cada persona esta asignada a una
profesión.

                                            7
RIGHT OUTER JOIN

Este comando es lo inverso al comando anterior pero como en nuestras tablas no hay valores
huérfanos proyecta el mismo valor por pantalla como se puede apreciar a continuación.




                                        Comando 9




                                        Proyección 5




Así como también podemos modificar el comando cambiando en la selección de la
tabla derecha la columna “id” por la columna “tipo” los que nos arrojaría los siguientes
valores nulos por que en la tabla principal solo posee la id de la profesión y no el
nombre.



                                        Comando 10




                                        Proyección 6




                                             8
Así como también se le puede agregar una condición




Comando 11




Proyección 7


FULL OUTER JOIN
Esta es la combinación completa que proyecta los resultados de la tabla izquierda y la
tabla derecha aun, la tabla combinada contendrá todos los registros de ambas tablas y
valores nulos para registros sin parejas.


Esta sentencia se emplea de la siguiente manera



                                     Comando 12




A si como también se puede sustituir por el comando “UNION” lo que nos proyectaría
el mismo resultado.




                                     Comando 13




                                          9
La proyección del comando es la siguiente:




Proyección 8




Conclusión

                                         10
La sentencia join nos sirve de mucho al momento de realizar combinaciones entre
distintas tablas, esto nos permite una mejor forma de clasificar los datos y de
ordenarlos de acuerdo a características propuestas en nuestras tablas logrando
optimizarla y conseguir mayor eficiencia al momento de realizar consultas.

 Con es sentencia podemos realizar combinación interna con el inner join, de
equivalencia con el equi-join, cruzadas con el cross join, combinaciones completas con
el full outer join entre otras las cuales aplicamos de manera correcta y precisa en el
informe presentado, y para finalizar creemos que esta sentencia nos será muy útil al
momento de aplicarla en un trabajo o simplemente en una base de datos creada para
uso personal.




                                          11
Referencia

Oreilly.Head.First.SQL.Aug.2007

http://www.keithjbrown.co.uk/vworks/mysql/mysql_p5.php

http://www.conclase.net/mysql/curso/?sqlsen=JOIN

http://www.wikilearning.com/tutorial/inner_join_o_equi_join_consultas_mysql_a_mu
ltiples_tablas_relacionadas-
inner_join_o_equi_join_consultas_mysql_a_multiples_tablas_relacionadas/18001-1

http://es.wikipedia.org/wiki/Join




                                       12

Join

  • 1.
    Informe Head FirstSQL Joins and multi-table operations Integrantes: D. Canales H. Medina R. Medina H. Painen Ingeniería Informática Facultad de Ingeniería Departamento de Ingeniería en Informática Profesores: Oscar Guzmán Matus Gustavo Donoso Montoya Universidad Católica de Temuco.
  • 2.
    Índice Índice ..................................................................................................................................2 Introducción ........................................................................................................................3 INNER JOIN ......................................................................................................................4 EQUI-JOIN ........................................................................................................................5 NATURAL JOIN..................................................................................................................5 CROSS JOIN ......................................................................................................................6 OUTER JOIN ...............................................................................................................................................................7 LEFT OUTER JOIN ..............................................................................................................7 RIGHT OUTER JOIN ...........................................................................................................8 FULL OUTER JOIN..............................................................................................................9 Conclusión .........................................................................................................................10 Referencia .........................................................................................................................12 2
  • 3.
    Introducción Una base dedatos es una forma de agrupar datos ordenándolos de forma eficaz, con MySQL hemos aprendido como crearla, como modificarla, como lograr que nuestra base de datos sea eficiente, pero para realizar lo dicho anteriormente debíamos respetar unas reglas las cuales eran las de normalización, pero un gran drama para nosotros era como se puede combinar 2 o mas tablas y para ello recurrimos al capitulo 8 del libro head first de MySQL el cual presentaremos a continuación y se abordaran temas como el uso de la sentencia JOIN la cual nos permite combinar dos o más tablas en una base de datos relacional. Esta se subdivide en 8 tipos: inner JOIN, equi -JOIN, natural JOIN, cross JOIN, outer JOIN, left JOIN, right JOIN y finalmente full outer JOIN y ahora los invitamos a leer el siguiente informe en el cual se aplican algunas de las sentencias join mencionadas. 3
  • 4.
    INNER JOIN Con estecomando se calculan los productos cruzados de todos los registros, así que todos los registros de la tabla 1 es combinado con cada registro de la tabla 2, pero solo se proyectan por pantalla aquellos registros que satisfacen las condiciones que se especifiquen. A continuación tenemos la tabla 1 y la tabla2. Tabla 1 Tabla 2 La forma común de realizarlo es la siguiente (explicita) Comando 1 Y como resultado mostrara: Proyección 1 También existe la forma implícita lo que nos daría el mismo resultado Comando 2 4
  • 5.
    EQUI-JOIN Esta sentencia serefiere a la equivalencia entre las tablas seleccionadas, cabe mencionar que es muy parecido respecto a la sentencia INNER JOIN pero se diferencia que se pueden usar operadores como < o > como muestra a continuación Comando 3 Lo que proyectara: Proyección 2 Así como también podemos probar con operador opuesto Comando 4 Lo que nos proyecta una tabla con 17 filas a diferencia de su operador opuesto que nos arroja 12 filas. 5
  • 6.
    NATURAL JOIN Este comandoes muy útil porque se comparan todas las columnas que tengan nombres idénticos en ambas tablas y como resultado muestra solo una columna si es repetida. A continuación les indicaremos la forma de realizar el comando Comando 5 Lo que proyectaría: Proyección 3 CROSS JOIN Este comando presenta un producto cartesiano de todos los registros de las tablas seleccionadas, pero tiene un inconveniente ya que no se pueden exponer excepciones en su resultado. Forma explicita Comando 6 Forma implícita Comando 7 Esto arrojo como resultado una tabla con 25 filas, y por motivos obvios no la mostraremos para no deformar el informe. 6
  • 7.
    OUTER JOIN Esta operaciónno requiere que los registros de las tablas a emplear posean un registro equivalente entre ellas. El registro se mantiene en la tabla combinada si no existe otro registro idéntico que le corresponda. Esta operación se subdivide en tres tipos dependiendo de la tabla a la cual se le admitan los registros que no tienen correspondencia, tal que sean de la tabla izquierda(LEFT OUTER JOIN), de la tabla derecha(RIGHT OUTER JOIN) o una combinación completa(FULL OUTER JOIN). LEFT OUTER JOIN El resultado de esta operación proyecta los registros de la tabla izquierda en la consulta y las parejas entre la tabla de la izquierda y la tabla derecha o retorna un valor NULL en caso de que no corresponda. Comando 8 Proyección 4 En este caso no muestra valores nulos ya que cada persona esta asignada a una profesión. 7
  • 8.
    RIGHT OUTER JOIN Estecomando es lo inverso al comando anterior pero como en nuestras tablas no hay valores huérfanos proyecta el mismo valor por pantalla como se puede apreciar a continuación. Comando 9 Proyección 5 Así como también podemos modificar el comando cambiando en la selección de la tabla derecha la columna “id” por la columna “tipo” los que nos arrojaría los siguientes valores nulos por que en la tabla principal solo posee la id de la profesión y no el nombre. Comando 10 Proyección 6 8
  • 9.
    Así como tambiénse le puede agregar una condición Comando 11 Proyección 7 FULL OUTER JOIN Esta es la combinación completa que proyecta los resultados de la tabla izquierda y la tabla derecha aun, la tabla combinada contendrá todos los registros de ambas tablas y valores nulos para registros sin parejas. Esta sentencia se emplea de la siguiente manera Comando 12 A si como también se puede sustituir por el comando “UNION” lo que nos proyectaría el mismo resultado. Comando 13 9
  • 10.
    La proyección delcomando es la siguiente: Proyección 8 Conclusión 10
  • 11.
    La sentencia joinnos sirve de mucho al momento de realizar combinaciones entre distintas tablas, esto nos permite una mejor forma de clasificar los datos y de ordenarlos de acuerdo a características propuestas en nuestras tablas logrando optimizarla y conseguir mayor eficiencia al momento de realizar consultas. Con es sentencia podemos realizar combinación interna con el inner join, de equivalencia con el equi-join, cruzadas con el cross join, combinaciones completas con el full outer join entre otras las cuales aplicamos de manera correcta y precisa en el informe presentado, y para finalizar creemos que esta sentencia nos será muy útil al momento de aplicarla en un trabajo o simplemente en una base de datos creada para uso personal. 11
  • 12.