El sistema de gestión de bases de datos (DBMS) permite recuperar datos de más de una tabla mediante combinaciones.
Las uniones son principalmente productos cartesianos de dos o más relaciones (o tablas).
Las combinaciones SQL se clasifican ampliamente como combinación interna y combinación externa . Inner Join selecciona filas de las tablas que cumplen la condición de unión. Pero al usar la unión interna, los datos específicamente se pierden las filas de ambas tablas que no cumplen la condición. Outer Join se puede utilizar para evitar la pérdida de datos de las tablas.
Tipos de combinación externa:
la combinación externa se clasifica nuevamente en 3 tipos: combinación externa izquierda, combinación externa derecha y combinación externa completa. Estos se explican a continuación a continuación.
- Left Outer Join:
Left Outer Join devuelve todas las filas de la tabla de la izquierda y las columnas de la tabla de la derecha tienen relleno nulo. Left Outer Join recupera todas las filas de ambas tablas que cumplen la condición de combinación junto con las filas no coincidentes de la tabla izquierda.Sintaxis:
SELECT [column1, column2, ....] FROM table1 LEFT OUTER JOIN table2 ON table1.matching_column = table2.matching_column WHERE [condition];
O
SELECT [column1, column2, ....] FROM table1 LEFT OUTER JOIN table2 ON table1.matching_column = table2.matching_column WHERE [condition];
Representación esquemática:
- Right Outer Join:
Right Outer Join devuelve todas las filas de la tabla de la derecha y las columnas de la tabla de la izquierda tienen relleno nulo. Right Outer Join recupera todas las filas de ambas tablas que cumplen la condición de combinación junto con las filas no coincidentes de la tabla derecha.Sintaxis:
SELECT [column1, column2, ....] FROM table1 RIGHT OUTER JOIN table2 ON table1.matching_column = table2.matching_column WHERE [condition];
O,
SELECT [column1, column2, ....] FROM table1 RIGHT OUTER JOIN table2 ON table1.matching_column(+) = table2.matching_column WHERE [condition];
Representación esquemática:
- Full Outer Join:
Full Outer Join devuelve todas las filas de la tabla. Cuando no existen filas coincidentes para la fila de la tabla de la izquierda, las columnas de la tabla de la derecha se rellenan con nulos. De manera similar, cuando no existen filas coincidentes para la fila de la tabla de la derecha, las columnas de la tabla de la izquierda se rellenan con nulos. La combinación externa completa es la unión de la combinación externa izquierda y la combinación externa derecha.Sintaxis:
SELECT [column1, column2, ....] FROM table1 FULL OUTER JOIN table2 ON table1.matching_column = table2.matching_column WHERE [condition];
Representación esquemática:
Ejemplo:
Considere la siguiente tabla de empleados,
EMPID | NOMBRE | EMPDEPTO | SALARIO |
---|---|---|---|
101 | amanda | Desarrollo | 50000 |
102 | Diana | HORA | 40000 |
103 | bruce | Diseño | 30000 |
104 | Steve | Pruebas | 35000 |
105 | roger | Analista | 10000 |
Tabla de departamentos:
DEPTID | NOMBREDEPT | UBICACIÓN |
---|---|---|
10 | Desarrollo | Nueva York |
11 | Diseño | Nueva York |
12 | Pruebas | Washington |
13 | Mesa de ayuda | los Angeles |
Ahora,
1. Consulta de combinación externa izquierda:
Select empid, ename, deptid, deptname from employee left outer join department on employee.empdept = department.deptname;
Producción:
EMPID | NOMBRE | DEPTID | NOMBREDEPT |
---|---|---|---|
101 | amanda | 10 | Desarrollo |
103 | bruce | 11 | Diseño |
104 | Steve | 12 | Pruebas |
102 | Diana | nulo | nulo |
105 | roger | nulo | nulo |
2. Consulta de unión externa derecha:
Select empid, ename, deptid, deptname from employee right outer join department on employee.empdept = department.deptname;
EMPID | NOMBRE | DEPTID | NOMBREDEPT |
---|---|---|---|
101 | amanda | 10 | Desarrollo |
103 | bruce | 11 | Diseño |
104 | Steve | 12 | Pruebas |
nulo | nulo | 13 | Mesa de ayuda |
3. Consulta de unión externa completa:
Select empid, ename, deptid, deptname from employee full outer join department on employee.empdept = department.deptname;
EMPID | NOMBRE | DEPTID | NOMBREDEPT |
---|---|---|---|
101 | amanda | 10 | Desarrollo |
103 | bruce | 11 | Diseño |
104 | Steve | 12 | Pruebas |
102 | Diana | nulo | nulo |
105 | roger | nulo | nulo |
nulo | nulo | 13 | Mesa de ayuda |
Diferencias entre la combinación externa izquierda, la combinación externa derecha y la combinación externa completa:
Izquierda combinación externa | Unión exterior derecha | Unión exterior completa |
---|---|---|
Obtiene todas las filas de la tabla de la izquierda | Obtiene todas las filas de la tabla de la derecha | Obtiene todas las filas de ambas tablas. |
Unión interna + todas las filas no coincidentes de la tabla de la izquierda |
Unión interna + todas las filas no coincidentes de la tabla de la derecha |
Unión interna + todas las filas no coincidentes de la tabla izquierda + todas las filas no coincidentes de la tabla derecha |
Se pierden los datos no coincidentes de la tabla derecha | Los datos no coincidentes de la tabla de la izquierda se pierden | No se pierde ningún dato |
SELECCIONE [columna1, columna2, ….] DESDE tabla1 IZQUIERDA EXTERNA ÚNASE tabla2 EN tabla1.columna_coincidente = tabla2.columna_coincidente |
SELECCIONE [columna1, columna2, ….] DESDE tabla1 UNIÓN EXTERNA DERECHA tabla2 EN tabla1.columna_coincidente = tabla2.columna_coincidente |
SELECCIONE [columna1, columna2, ….] DE table1 FULL OUTER JOIN table2 ON table1.matching_column = table2.matching_column |
Publicación traducida automáticamente
Artículo escrito por Shreyasi_Chakraborty y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA