PostgreSQL Junte tipos com exemplos: interno, externo, esquerdo, direito
O que sรฃo junรงรตes PostgreSQL?
PostgreSQL Junta sรฃo usados โโpara recuperar dados de mais de uma tabela. Com Joins, รฉ possรญvel combinar as instruรงรตes SELECT e JOIN em uma รบnica instruรงรฃo. Uma condiรงรฃo JOIN รฉ adicionada ร instruรงรฃo e todas as linhas que atendem ร s condiรงรตes sรฃo retornadas. Os valores de diferentes tabelas sรฃo combinados com base em colunas comuns. A coluna comum รฉ principalmente uma chave primรกria na primeira tabela e uma chave estrangeira na segunda tabela.
PostgreSQL Tipos de junรงรฃo
Existem dois tipos de junรงรตes em PostgreSQL:
- Junรงรตes internas
- Junรงรตes Externas
PostgreSQL Junรงรฃo interna
Existem 3 tipos de junรงรตes internas em PostgreSQL:
- Theta junta-se
- Junรงรฃo natural
- Junte-se ร EQUI
Uniรฃo Theta
Uma junรงรฃo theta permite unir duas tabelas com base na condiรงรฃo representada por theta. As junรงรตes Theta podem funcionar com todos os operadores de comparaรงรฃo. Na maioria dos casos, a junรงรฃo teta รฉ chamada de junรงรฃo interna.
O theta join รฉ o tipo mais bรกsico de JOIN. Ele retornarรก todas as linhas das tabelas onde a condiรงรฃo JOIN for satisfeita.
Sintaxe:
SELECT columns FROM table-1 INNER JOIN table-2 ON table-1.column = table-2.column;
Considere as seguintes tabelas do banco de dados Demo:
Livro:
Preรงo:
Queremos ver o nome de cada livro e o preรงo correspondente. Podemos executar o seguinte comando:
SELECT Book.name, Price.price FROM Book INNER JOIN Price ON Book.id = Price.id;
Isso retornarรก o seguinte:
Apenas 3 linhas satisfizeram a condiรงรฃo de junรงรฃo.
Junte-se ร EQUI
A junรงรฃo EQUI nos fornece uma maneira de unir duas tabelas com base no relacionamento chave primรกria/chave estrangeira. Por exemplo:
SELECT * FROM Book JOIN Price ON Book.id = Price.id;
Isso retornarรก o seguinte:
Os registros foram retornados de ambas as tabelas com base nas colunas comuns, ou seja, a coluna id.
Uniรฃo Natural
Este tipo de junรงรฃo nos fornece outra maneira de escrever uma junรงรฃo EQUI. Podemos melhorar nosso exemplo anterior adicionando a palavra-chave NATURAL conforme mostrado abaixo:
SELECT * FROM Book NATURAL JOIN Price;
Isso retornarรก o seguinte:
Apenas uma coluna de id foi retornada. O NATURAL JOIN conseguiu notar que a coluna id รฉ comum nas duas tabelas. Apenas um foi devolvido.
Junรงรฃo externa do Postgres
Existem 3 tipos de junรงรตes externas em PostgreSQL:
- Uniรฃo Externa Esquerda
- Junรงรฃo Externa Direita
- Junรงรฃo Externa Completa
Junรงรฃo externa esquerda do Postgres
O LEFT OUTER JOIN retornarรก todas as linhas da tabela do lado esquerdo e apenas as linhas da tabela do lado direito onde a condiรงรฃo de junรงรฃo foi satisfeita.
Sintaxe:
SELECT columns FROM table-1 LEFT OUTER JOIN table-2 ON table-1.column = table-2.column;
Precisamos ver o nome de cada livro e o preรงo correspondente. Podemos executar o seguinte comando:
SELECT Book.name, Price.price FROM Book LEFT JOIN Price ON Book.id = Price.id;
Isso retorna o seguinte:
Todas as 4 linhas da tabela Book foram retornadas. Apenas 3 linhas da tabela Preรงo atenderam ร condiรงรฃo de junรงรฃo. Portanto, eles foram devolvidos. O รบltimo livro nรฃo tem valor de preรงo correspondente.
Junรงรฃo externa direita do Postgres
O RIGHT OUTER JOIN retorna todas as linhas da tabela no lado direito e as linhas da tabela no lado esquerdo onde a condiรงรฃo de junรงรฃo foi satisfeita.
Sintaxe:
SELECT columns FROM table-1 RIGHT OUTER JOIN table-2 ON table-1.column = table-2.column;
Por exemplo:
SELECT Book.name, Price.price FROM Book RIGHT JOIN Price ON Book.id = Price.id;
Isso retorna o seguinte:
Todas as linhas da tabela Preรงo foram retornadas. Somente as linhas da tabela Book que atenderam ร condiรงรฃo de junรงรฃo foram retornadas. O 3rd row nรฃo tem valor para nome, pois nenhuma correspondรชncia foi encontrada.
Junรงรฃo externa completa PostgreSQL
Este tipo de JOIN retornarรก todas as linhas da tabela no lado esquerdo e todas as linhas da tabela no lado direito com nulos onde a condiรงรฃo de junรงรฃo nรฃo for satisfeita.
Sintaxe:
SELECT columns FROM table-1 FULL OUTER JOIN table-2 ON table-1.column = table-2.column;
Por exemplo:
SELECT Book.name, Price.price FROM Book FULL OUTER JOIN Price ON Book.id = Price.id;
Isso retorna o seguinte:
Todas as linhas de todas as tabelas foram retornadas, com valores nulos onde nenhuma correspondรชncia foi encontrada.
Usando pgAdmin
As tarefas acima podem ser realizadas no pgAdmin da seguinte forma:
Associaรงรฃo interna do pgAdmin
Como usar o Theta Join PostgreSQL usando pgAdmin
Abaixo estรฃo as etapas para usar Theta Join no Postgres usando pgAdmin:
Etapa 1) Faรงa login em sua conta pgAdmin
Abra o pgAdmin e faรงa login usando suas credenciais
Etapa 2) Criar banco de dados de demonstraรงรฃo
- Na barra de navegaรงรฃo ร esquerda, clique em Bancos de dados.
- Clique em Demonstraรงรฃo.
Etapa 3) Digite a consulta
Digite a consulta abaixo no editor de consultas:
SELECT Book.name, Price.price FROM Book INNER JOIN Price ON Book.id = Price.id;
Etapa 4) Execute a consulta
Clique no botรฃo Executar
Deve retornar o seguinte:
Junte-se ร EQUI
Passo 1) Faรงa login em sua conta pgAdmin.
Passo 2)
- Na barra de navegaรงรฃo ร esquerda, clique em Bancos de dados.
- Clique em Demonstraรงรฃo.
Passo 3) Digite a consulta no editor de consultas:
SELECT * FROM Book JOIN Price ON Book.id = Price.id;
Passo 4) Clique no botรฃo Executar.
Deve retornar o seguinte:
Uniรฃo Natural
Passo 1) Faรงa login em sua conta pgAdmin.
Passo 2)
- Na barra de navegaรงรฃo ร esquerda, clique em Bancos de dados.
- Clique em Demonstraรงรฃo.
Passo 3) Digite a consulta no editor de consultas:
SELECT * FROM Book NATURAL JOIN Price;
Passo 4) Clique no botรฃo Executar.
Deve retornar o seguinte:
pgAdmin Junรงรฃo interna simples
Passo 1) Faรงa login em sua conta pgAdmin.
Passo 2)
- Na barra de navegaรงรฃo ร esquerda, clique em Bancos de dados.
- Clique em Demonstraรงรฃo.
Passo 3) Digite a consulta no editor de consultas:
SELECT Book.name, Price.price FROM Book INNER JOIN Price ON Book.id = Price.id;
Passo 4) Clique no botรฃo Executar.
Deve retornar o seguinte:
Associaรงรฃo externa do pgAdmin
Uniรฃo Externa Esquerda
Passo 1) Faรงa login em sua conta pgAdmin.
Passo 2)
- Na barra de navegaรงรฃo ร esquerda, clique em Bancos de dados.
- Clique em Demonstraรงรฃo.
Passo 3) Digite a consulta no editor de consultas:
SELECT Book.name, Price.price FROM Book LEFT JOIN Price ON Book.id = Price.id;
Passo 4) Clique no botรฃo Executar.
Deve retornar o seguinte:
Junรงรฃo Externa Direita
Passo 1) Faรงa login em sua conta pgAdmin.
Passo 2)
- Na barra de navegaรงรฃo ร esquerda, clique em Bancos de dados.
- Clique em Demonstraรงรฃo.
Passo 3) Digite a consulta no editor de consultas:
SELECT Book.name, Price.price FROM Book RIGHT JOIN Price ON Book.id = Price.id;
Passo 4) Clique no botรฃo Executar.
Deve retornar o seguinte:
Junรงรฃo Externa Completa
Passo 1) Faรงa login em sua conta pgAdmin.
Passo 2)
- Na barra de navegaรงรฃo ร esquerda, clique em Bancos de dados.
- Clique em Demonstraรงรฃo.
Passo 3) Digite a consulta no editor de consultas:
SELECT Book.name, Price.price FROM Book FULL OUTER JOIN Price ON Book.id = Price.id;
Passo 4) Clique no botรฃo Executar.
Deve retornar o seguinte:
Resumo
- In PostgreSQL, usamos JOINs quando precisamos recuperar valores de mais de uma tabela.
- O INNER JOIN รฉ o tipo mais bรกsico de JOIN. Ele retorna todos os registros onde a condiรงรฃo JOIN especificada foi satisfeita.
- O LEFT OUTER JOIN retorna todas as linhas da tabela ร esquerda e apenas as linhas da outra tabela onde a condiรงรฃo de junรงรฃo foi satisfeita.
- O RIGHT OUTER JOIN retorna todas as linhas da tabela ร direita e apenas as linhas da outra tabela onde a condiรงรฃo de junรงรฃo foi satisfeita.
- Este tipo de JOIN retorna todas as linhas da tabela ร esquerda e todas as linhas da tabela ร direita com nulos onde a condiรงรฃo de junรงรฃo nรฃo รฉ satisfeita.





























