Juntar

Definição - o que significa Join?

Uma junção é uma operação SQL executada para estabelecer uma conexão entre duas ou mais tabelas de banco de dados com base em colunas correspondentes, criando assim um relacionamento entre as tabelas. As consultas mais complexas em um sistema de gerenciamento de banco de dados SQL envolvem comandos de junção.

Existem diferentes tipos de junções. O tipo de associação que um programador usa determina quais registros a consulta seleciona. Três algoritmos funcionam por trás das operações de junção: junção hash, junção sort-merge e junção de loop aninhado.

Definirtec explica Join

O tipo de junção padrão é a junção interna. Uma junção interna seleciona registros de duas tabelas que contêm valores correspondentes. Os registros que não contêm valores correspondentes ou comuns são excluídos da saída. A consulta compara cada linha da primeira tabela com as linhas da segunda tabela para encontrar linhas que satisfaçam o predicado de junção.

Por exemplo, se uma tabela contém detalhes do funcionário e outra contém informações do gerente, uma junção pode ser realizada nas tabelas de funcionário e gerente para exibir os funcionários que também são gerentes. A consulta a seguir exibe funcionários que são gerentes:

SELECT * FROM Employee INNER JOIN Manager ON Employee.Managerid = Manager.Managerid

Uma junção é sempre executada em colunas correspondentes, que são especificadas na cláusula "ON" da consulta. A coluna correspondente neste exemplo é "Managerid". Como o operador '=' é usado, ele é chamado de equijoin.

Uma junção natural também produz a mesma saída, mas usa uma palavra-chave "USING" na cláusula de junção. A consulta acima pode ser modificada da seguinte maneira para indicar uma junção natural:

SELECIONE o funcionário, gerente DE Funcionário INNER JOIN Gerente USANDO (ID do gerente)

Mesmo se uma coluna correspondente não for especificada, uma junção ainda será realizada entre duas tabelas. Esse tipo de junção é conhecido como junção cruzada (às vezes chamada de produto cartesiano), que é a forma mais simples de junção. Como uma restrição na chave não é especificada, todas as linhas da primeira tabela são associadas a todas as linhas da segunda tabela. Se a primeira tabela tiver duas linhas e a segunda tabela três linhas, a saída terá seis linhas.

A junção externa é outro tipo de junção importante. As junções externas, em geral, aceitam todos os registros de uma tabela e os registros correspondentes da outra tabela como saída. Uma junção externa pode ser uma junção externa esquerda ou uma junção externa direita. Em uma junção externa esquerda, todas as tabelas da tabela esquerda - mesmo se não satisfizerem as condições de correspondência - e as linhas correspondentes da tabela direita são exibidas na saída. Em uma junção externa direita, todas as linhas da tabela direita e as linhas correspondentes da tabela esquerda são exibidas como saída.

Em casos raros, uma mesa pode ser unida a si mesma. Isso é chamado de autojunção.