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