SlideShare una empresa de Scribd logo
1 de 12
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

Insercción de datos y selección de datos
Insercción de datos y selección de datosInsercción de datos y selección de datos
Insercción de datos y selección de datosPathy1254
 
Introducción a Sql
Introducción a SqlIntroducción a Sql
Introducción a Sqlalexmerono
 
Sesion06b - Introducción al PL-SQL (Oracle)
Sesion06b - Introducción al PL-SQL (Oracle)Sesion06b - Introducción al PL-SQL (Oracle)
Sesion06b - Introducción al PL-SQL (Oracle)José Toro
 
manejo de sentencias de manipulacion
manejo de sentencias de manipulacionmanejo de sentencias de manipulacion
manejo de sentencias de manipulacionSergio Perez
 
Inserción de datos y selección de datos
Inserción de datos y selección de datosInserción de datos y selección de datos
Inserción de datos y selección de datoscarmen305
 
Sesion09 - Manejo de Excepciones (Oracle)
Sesion09 - Manejo de Excepciones (Oracle)Sesion09 - Manejo de Excepciones (Oracle)
Sesion09 - Manejo de Excepciones (Oracle)José Toro
 
Sesion05 - Manipulacion de datos (Oracle)
Sesion05 - Manipulacion de datos (Oracle)Sesion05 - Manipulacion de datos (Oracle)
Sesion05 - Manipulacion de datos (Oracle)José Toro
 
Seleccion de datos
Seleccion de datosSeleccion de datos
Seleccion de datosOmar Salazar
 
Portafolio 1 sql
Portafolio 1 sqlPortafolio 1 sql
Portafolio 1 sqlJuanKMillos
 
Actualización de bases de datos en MySQL
Actualización de bases de datos en MySQLActualización de bases de datos en MySQL
Actualización de bases de datos en MySQLalexmerono
 
Control jtable con base de datos
Control jtable con base de datosControl jtable con base de datos
Control jtable con base de datosPatricia Reyna
 
Técnicas avanzadas de consultas con sql server 2014
Técnicas avanzadas de consultas con sql server 2014Técnicas avanzadas de consultas con sql server 2014
Técnicas avanzadas de consultas con sql server 2014JOSE AHIAS LOPEZ PORTILLO
 
Triggers
TriggersTriggers
Triggersbdatos
 

La actualidad más candente (20)

DML3.pptx
DML3.pptxDML3.pptx
DML3.pptx
 
Manipulacion de Bases de Datos
Manipulacion de Bases de DatosManipulacion de Bases de Datos
Manipulacion de Bases de Datos
 
Curso SQL - Leccion 10
Curso SQL - Leccion 10Curso SQL - Leccion 10
Curso SQL - Leccion 10
 
Insercción de datos y selección de datos
Insercción de datos y selección de datosInsercción de datos y selección de datos
Insercción de datos y selección de datos
 
Introducción a Sql
Introducción a SqlIntroducción a Sql
Introducción a Sql
 
Resumen sql-oracle
Resumen sql-oracleResumen sql-oracle
Resumen sql-oracle
 
Sesion06b - Introducción al PL-SQL (Oracle)
Sesion06b - Introducción al PL-SQL (Oracle)Sesion06b - Introducción al PL-SQL (Oracle)
Sesion06b - Introducción al PL-SQL (Oracle)
 
manejo de sentencias de manipulacion
manejo de sentencias de manipulacionmanejo de sentencias de manipulacion
manejo de sentencias de manipulacion
 
Inserción de datos y selección de datos
Inserción de datos y selección de datosInserción de datos y selección de datos
Inserción de datos y selección de datos
 
Sesion09 - Manejo de Excepciones (Oracle)
Sesion09 - Manejo de Excepciones (Oracle)Sesion09 - Manejo de Excepciones (Oracle)
Sesion09 - Manejo de Excepciones (Oracle)
 
Introducción a sql server
Introducción a sql serverIntroducción a sql server
Introducción a sql server
 
Sesion05 - Manipulacion de datos (Oracle)
Sesion05 - Manipulacion de datos (Oracle)Sesion05 - Manipulacion de datos (Oracle)
Sesion05 - Manipulacion de datos (Oracle)
 
Seleccion de datos
Seleccion de datosSeleccion de datos
Seleccion de datos
 
Portafolio 1 sql
Portafolio 1 sqlPortafolio 1 sql
Portafolio 1 sql
 
Actualización de bases de datos en MySQL
Actualización de bases de datos en MySQLActualización de bases de datos en MySQL
Actualización de bases de datos en MySQL
 
Control jtable con base de datos
Control jtable con base de datosControl jtable con base de datos
Control jtable con base de datos
 
WebSQl DataBase HTML5-dql - data query language
WebSQl DataBase HTML5-dql - data query languageWebSQl DataBase HTML5-dql - data query language
WebSQl DataBase HTML5-dql - data query language
 
Técnicas avanzadas de consultas con sql server 2014
Técnicas avanzadas de consultas con sql server 2014Técnicas avanzadas de consultas con sql server 2014
Técnicas avanzadas de consultas con sql server 2014
 
Triggers
TriggersTriggers
Triggers
 
Manual as-400 (1)
Manual as-400 (1)Manual as-400 (1)
Manual as-400 (1)
 

Similar a Join

Similar a Join (20)

Consultas multitabla clase
Consultas multitabla claseConsultas multitabla clase
Consultas multitabla clase
 
Guía de declaraciones de open sql
Guía  de declaraciones de open sqlGuía  de declaraciones de open sql
Guía de declaraciones de open sql
 
SENTENCIAS DE SQL SERVER
SENTENCIAS DE SQL SERVERSENTENCIAS DE SQL SERVER
SENTENCIAS DE SQL SERVER
 
MANEJO DE SENTENCIAS DE RECUPERACIÓN
MANEJO DE SENTENCIAS DE RECUPERACIÓNMANEJO DE SENTENCIAS DE RECUPERACIÓN
MANEJO DE SENTENCIAS DE RECUPERACIÓN
 
MANEJO DE SENTENCIAS DE RECUPERACIÓN
MANEJO DE SENTENCIAS DE RECUPERACIÓNMANEJO DE SENTENCIAS DE RECUPERACIÓN
MANEJO DE SENTENCIAS DE RECUPERACIÓN
 
SENTENCIAS SQL
SENTENCIAS SQLSENTENCIAS SQL
SENTENCIAS SQL
 
SENTENCIAS SQL
SENTENCIAS SQLSENTENCIAS SQL
SENTENCIAS SQL
 
SENTENCIA SQL
SENTENCIA SQLSENTENCIA SQL
SENTENCIA SQL
 
Lenguaje de-programacion-iii-visual-fox-pro
Lenguaje de-programacion-iii-visual-fox-proLenguaje de-programacion-iii-visual-fox-pro
Lenguaje de-programacion-iii-visual-fox-pro
 
SENTENCIAS SQL
SENTENCIAS SQLSENTENCIAS SQL
SENTENCIAS SQL
 
Joins
JoinsJoins
Joins
 
Guía 04. Consultas MySQL sobre varias tablas. Composición externa - José J Sá...
Guía 04. Consultas MySQL sobre varias tablas. Composición externa - José J Sá...Guía 04. Consultas MySQL sobre varias tablas. Composición externa - José J Sá...
Guía 04. Consultas MySQL sobre varias tablas. Composición externa - José J Sá...
 
Matlab
MatlabMatlab
Matlab
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
BD_L8_EXP_ROZIC_CAP9_SQL
BD_L8_EXP_ROZIC_CAP9_SQLBD_L8_EXP_ROZIC_CAP9_SQL
BD_L8_EXP_ROZIC_CAP9_SQL
 
Lenguaje de-programacion-iii-visual-fox-pro
Lenguaje de-programacion-iii-visual-fox-proLenguaje de-programacion-iii-visual-fox-pro
Lenguaje de-programacion-iii-visual-fox-pro
 
Lenguaje de-programacion-iii-visual-fox-pro
Lenguaje de-programacion-iii-visual-fox-proLenguaje de-programacion-iii-visual-fox-pro
Lenguaje de-programacion-iii-visual-fox-pro
 
Definiciones
DefinicionesDefiniciones
Definiciones
 

Más de dcanales2010 (15)

Al ap 04
Al ap 04Al ap 04
Al ap 04
 
Al ap 03
Al ap 03Al ap 03
Al ap 03
 
Al pr 02
Al pr 02Al pr 02
Al pr 02
 
Al ap 02
Al ap 02Al ap 02
Al ap 02
 
Al ap 01
Al ap 01Al ap 01
Al ap 01
 
Canales diego algebra
Canales diego algebraCanales diego algebra
Canales diego algebra
 
Canales diego algebra
Canales diego algebraCanales diego algebra
Canales diego algebra
 
Biol tema1
Biol tema1Biol tema1
Biol tema1
 
Algebra lineal 08_09
Algebra lineal 08_09Algebra lineal 08_09
Algebra lineal 08_09
 
Advanced select3juar
Advanced select3juarAdvanced select3juar
Advanced select3juar
 
Cliente servidor tron_27oct
Cliente servidor tron_27octCliente servidor tron_27oct
Cliente servidor tron_27oct
 
Tron 13 oct
Tron 13 octTron 13 oct
Tron 13 oct
 
Linux
LinuxLinux
Linux
 
Free bsd
Free bsdFree bsd
Free bsd
 
Free bsd
Free bsdFree bsd
Free bsd
 

Join

  • 1. 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.
  • 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 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
  • 4. 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
  • 5. 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
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. 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
  • 10. La proyección del comando es la siguiente: Proyección 8 Conclusión 10
  • 11. 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