PostgreSQL Tipos de unión con ejemplos: interior, exterior, izquierda, derecha
¿Qué son las uniones? PostgreSQL?
PostgreSQL Une se utilizan para recuperar datos de más de una tabla. Con Joins, nos es posible combinar las declaraciones SELECT y JOIN en una sola declaración. Se agrega una condición JOIN a la declaración y se devuelven todas las filas que cumplen las condiciones. Los valores de diferentes tablas se combinan en función de columnas comunes. La columna común es principalmente una clave principal en la primera tabla y una clave externa de la segunda tabla.
PostgreSQL Tipos de unión
Hay dos tipos de uniones en PostgreSQL:
- Uniones internas
- Uniones externas
PostgreSQL Unir internamente
Hay 3 tipos de uniones internas en PostgreSQL:
- Theta unirse
- Unión natural
- Únete a EQUI
Unión theta
Una unión theta permite unir dos tablas según la condición representada por theta. Las uniones theta pueden funcionar con todos los operadores de comparación. En la mayoría de los casos, la unión theta se denomina unión interna.
La unión theta es el tipo más básico de UNIÓN. Devolverá todas las filas de las tablas donde se cumple la condición JOIN.
Sintaxis:
SELECT columns FROM table-1 INNER JOIN table-2 ON table-1.column = table-2.column;
Considere las siguientes tablas de la base de datos Demo:
Libro:
Precio:
Queremos ver el nombre de cada libro y el precio correspondiente. Podemos ejecutar el siguiente comando:
SELECT Book.name, Price.price FROM Book INNER JOIN Price ON Book.id = Price.id;
Esto devolverá lo siguiente:
Solo 3 filas cumplieron la condición de unión.
Únete a EQUI
La unión EQUI nos proporciona una forma de unir dos tablas según la relación clave principal/clave externa. Por ejemplo:
SELECT * FROM Book JOIN Price ON Book.id = Price.id;
Esto devolverá lo siguiente:
Se han devuelto registros de ambas tablas en función de las columnas comunes, es decir, la columna de identificación.
Unión natural
Este tipo de unión nos proporciona otra forma de escribir una unión EQUI. Podemos mejorar nuestro ejemplo anterior agregando la palabra clave NATURAL como se muestra a continuación:
SELECT * FROM Book NATURAL JOIN Price;
Esto devolverá lo siguiente:
Solo se ha devuelto una columna de identificación. NATURAL JOIN pudo notar que la columna de identificación es común en las dos tablas. Sólo uno fue devuelto.
Unión externa de Postgres
Hay 3 tipos de uniones externas en PostgreSQL:
- Izquierda combinación externa
- Unión exterior derecha
- Unión externa completa
Unión externa izquierda de Postgres
LEFT OUTER JOIN devolverá todas las filas de la tabla del lado izquierdo y solo las filas de la tabla del lado derecho donde se ha cumplido la condición de unión.
Sintaxis:
SELECT columns FROM table-1 LEFT OUTER JOIN table-2 ON table-1.column = table-2.column;
Necesitamos ver el nombre de cada libro y el precio correspondiente. Podemos ejecutar el siguiente comando:
SELECT Book.name, Price.price FROM Book LEFT JOIN Price ON Book.id = Price.id;
Esto devuelve lo siguiente:
Se han devuelto las 4 filas de la tabla Libro. Sólo 3 filas de la tabla de precios cumplieron la condición de unión. Por eso fueron devueltos. El último libro no tiene valor de precio correspondiente.
Unión exterior derecha de Postgres
RIGHT OUTER JOIN devuelve todas las filas de la tabla del lado derecho y las filas de la tabla del lado izquierdo donde se ha cumplido la condición de unión.
Sintaxis:
SELECT columns FROM table-1 RIGHT OUTER JOIN table-2 ON table-1.column = table-2.column;
Por ejemplo:
SELECT Book.name, Price.price FROM Book RIGHT JOIN Price ON Book.id = Price.id;
Esto devuelve lo siguiente:
Se han devuelto todas las filas de la tabla Precio. Solo se devolvieron las filas de la tabla Libro que cumplieron la condición de unión. Los 3rd la fila no tiene valor para el nombre ya que no se encontró ninguna coincidencia.
Unión externa completa PostgreSQL
Este tipo de JOIN devolverá todas las filas de la tabla del lado izquierdo y todas las filas de la tabla del lado derecho con valores nulos donde no se cumple la condición de unión.
Sintaxis:
SELECT columns FROM table-1 FULL OUTER JOIN table-2 ON table-1.column = table-2.column;
Por ejemplo:
SELECT Book.name, Price.price FROM Book FULL OUTER JOIN Price ON Book.id = Price.id;
Esto devuelve lo siguiente:
Se han devuelto todas las filas de todas las tablas, con valores nulos donde no se encontró ninguna coincidencia.
Usando pgAdmin
Las tareas anteriores se pueden realizar en pgAdmin de la siguiente manera:
Unión interna de pgAdmin
Cómo utilizar Theta Únete PostgreSQL usando pgAdmin
A continuación se detallan los pasos para usar Theta Join en Postgres usando pgAdmin:
Paso 1) Inicie sesión en su cuenta pgAdmin
Abra pgAdmin e inicie sesión con sus credenciales
Paso 2) Crear base de datos de demostración
- Desde la barra de navegación de la izquierda, haga clic en Bases de datos.
- Haga clic en Demostración.
Paso 3) Escriba la consulta
Escriba la siguiente consulta en el editor de consultas:
SELECT Book.name, Price.price FROM Book INNER JOIN Price ON Book.id = Price.id;
Paso 4) Ejecutar la consulta
Haga clic en el botón Ejecutar
Debería devolver lo siguiente:
Únete a EQUI
Paso 1) Inicie sesión en su cuenta pgAdmin.
Paso 2)
- Desde la barra de navegación de la izquierda, haga clic en Bases de datos.
- Haga clic en Demostración.
Paso 3) Escriba la consulta en el editor de consultas:
SELECT * FROM Book JOIN Price ON Book.id = Price.id;
Paso 4) Haga clic en el botón Ejecutar.
Debería devolver lo siguiente:
Unión natural
Paso 1) Inicie sesión en su cuenta pgAdmin.
Paso 2)
- Desde la barra de navegación de la izquierda, haga clic en Bases de datos.
- Haga clic en Demostración.
Paso 3) Escriba la consulta en el editor de consultas:
SELECT * FROM Book NATURAL JOIN Price;
Paso 4) Haga clic en el botón Ejecutar.
Debería devolver lo siguiente:
pgAdmin Unión interna simple
Paso 1) Inicie sesión en su cuenta pgAdmin.
Paso 2)
- Desde la barra de navegación de la izquierda, haga clic en Bases de datos.
- Haga clic en Demostración.
Paso 3) Escriba la consulta en el editor de consultas:
SELECT Book.name, Price.price FROM Book INNER JOIN Price ON Book.id = Price.id;
Paso 4) Haga clic en el botón Ejecutar.
Debería devolver lo siguiente:
Unión externa pgAdmin
Izquierda combinación externa
Paso 1) Inicie sesión en su cuenta pgAdmin.
Paso 2)
- Desde la barra de navegación de la izquierda, haga clic en Bases de datos.
- Haga clic en Demostración.
Paso 3) Escriba la consulta en el editor de consultas:
SELECT Book.name, Price.price FROM Book LEFT JOIN Price ON Book.id = Price.id;
Paso 4) Haga clic en el botón Ejecutar.
Debería devolver lo siguiente:
Unión exterior derecha
Paso 1) Inicie sesión en su cuenta pgAdmin.
Paso 2)
- Desde la barra de navegación de la izquierda, haga clic en Bases de datos.
- Haga clic en Demostración.
Paso 3) Escriba la consulta en el editor de consultas:
SELECT Book.name, Price.price FROM Book RIGHT JOIN Price ON Book.id = Price.id;
Paso 4) Haga clic en el botón Ejecutar.
Debería devolver lo siguiente:
Unión externa completa
Paso 1) Inicie sesión en su cuenta pgAdmin.
Paso 2)
- Desde la barra de navegación de la izquierda, haga clic en Bases de datos.
- Haga clic en Demostración.
Paso 3) Escriba la consulta en el editor de consultas:
SELECT Book.name, Price.price FROM Book FULL OUTER JOIN Price ON Book.id = Price.id;
Paso 4) Haga clic en el botón Ejecutar.
Debería devolver lo siguiente:
Resumen
- In PostgreSQL, usamos JOIN cuando necesitamos recuperar valores de más de una tabla.
- La UNIÓN INTERNA es el tipo más básico de UNIÓN. Devuelve todos los registros donde se cumplió la condición JOIN especificada.
- LEFT OUTER JOIN devuelve todas las filas de la tabla de la izquierda y solo las filas de la otra tabla donde se ha cumplido la condición de unión.
- RIGHT OUTER JOIN devuelve todas las filas de la tabla de la derecha y solo las filas de la otra tabla donde se ha cumplido la condición de unión.
- Este tipo de JOIN devuelve todas las filas de la tabla de la izquierda y todas las filas de la tabla de la derecha con valores nulos donde no se cumple la condición de unión.
Descargue la Base de Datos utilizada en este Tutorial