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:

PostgreSQL Unión theta

Precio:

PostgreSQL Unión theta

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:

PostgreSQL Unión theta

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:

PostgreSQL Únete a EQUI

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:

PostgreSQL Unión natural

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:

Unión externa izquierda de Postgres

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:

Unión exterior derecha de Postgres

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:

Unión externa completa de Postgres

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

  1. Desde la barra de navegación de la izquierda, haga clic en Bases de datos.
  2. Haga clic en Demostración.

Unión interna de pgAdmin

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

Unión interna de pgAdmin

Debería devolver lo siguiente:

Unión interna de pgAdmin

Únete a EQUI

Paso 1) Inicie sesión en su cuenta pgAdmin.

Paso 2)

  1. Desde la barra de navegación de la izquierda, haga clic en Bases de datos.
  2. Haga clic en Demostración.

pgAdmin EQUI Unirse

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.

pgAdmin EQUI Unirse

Debería devolver lo siguiente:

pgAdmin EQUI Unirse

Unión natural

Paso 1) Inicie sesión en su cuenta pgAdmin.

Paso 2)

  1. Desde la barra de navegación de la izquierda, haga clic en Bases de datos.
  2. Haga clic en Demostración.

pgAdmin Unión natural

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.

pgAdmin Unión natural

Debería devolver lo siguiente:

pgAdmin Unión natural

pgAdmin Unión interna simple

Paso 1) Inicie sesión en su cuenta pgAdmin.

Paso 2)

  1. Desde la barra de navegación de la izquierda, haga clic en Bases de datos.
  2. Haga clic en Demostración.

pgAdmin Unión interna simple

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.

pgAdmin Unión interna simple

Debería devolver lo siguiente:

pgAdmin Unión interna simple

Unión externa pgAdmin

Izquierda combinación externa

Paso 1) Inicie sesión en su cuenta pgAdmin.

Paso 2)

  1. Desde la barra de navegación de la izquierda, haga clic en Bases de datos.
  2. Haga clic en Demostración.

pgAdmin Unión externa izquierda

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.

pgAdmin Unión externa izquierda

Debería devolver lo siguiente:

pgAdmin Unión externa izquierda

Unión exterior derecha

Paso 1) Inicie sesión en su cuenta pgAdmin.

Paso 2)

  1. Desde la barra de navegación de la izquierda, haga clic en Bases de datos.
  2. Haga clic en Demostración.

pgAdmin Unión exterior derecha

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.

pgAdmin Unión exterior derecha

Debería devolver lo siguiente:

pgAdmin Unión exterior derecha

Unión externa completa

Paso 1) Inicie sesión en su cuenta pgAdmin.

Paso 2)

  1. Desde la barra de navegación de la izquierda, haga clic en Bases de datos.
  2. Haga clic en Demostración.

pgAdmin Unión externa completa

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.

pgAdmin Unión externa completa

Debería devolver lo siguiente:

pgAdmin Unión externa completa

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