Junções em SGBD: Tipos de junção THETA, Interna, Externa e Equi
⚡ Resumo Inteligente
Em um SGBD (Sistema de Gerenciamento de Banco de Dados), a junção (JOIN) é uma operação binária que combina linhas de duas ou mais tabelas usando suas chaves primárias e estrangeiras. As junções se dividem em junções internas (inner joins), que retornam apenas as linhas correspondentes, e junções externas (outer joins), que mantêm as linhas não correspondentes e preenchem as lacunas com valores nulos.

O que é um JOIN em um SGBD?
Junte-se ao SGBD É uma operação binária que permite combinar um produto de junção e uma seleção em uma única instrução. O objetivo de criar uma condição de junção é combinar os dados de duas ou mais tabelas. As tabelas são associadas usando suas chaves primárias e chaves estrangeiras.
Tipos de Junção
Existem basicamente dois tipos de junções no SGBD:
- Junções internas: Theta, Natural, EQUI
- Junções externas: esquerda, direita, completa
A tabela abaixo apresenta uma prévia de todos os tipos de junção antes de cada um ser explicado com um exemplo.
| Junte-se | Returns | Linhas não correspondentes |
|---|---|---|
| Interior (Theta / EQUI / Natural) | Linhas que correspondem à condição em ambas as tabelas | Caiu |
| Esquerda Externa | Todas as linhas à esquerda mais os fósforos | Mantido da esquerda, nulo à direita |
| Externo direito | Todas as linhas à direita mais fósforos | Mantido à direita, nulo à esquerda. |
| Exterior completo | Todas as linhas de ambas as tabelas | Mantido de ambos, nulo onde ausente |
Junção interna
Junção interna É utilizada para retornar linhas de ambas as tabelas que satisfaçam a condição especificada. É a operação de junção mais utilizada e pode ser considerada o tipo de junção padrão.
Uma junção interna, ou equijunção, é uma junção baseada em comparadores que utiliza comparações de igualdade no predicado de junção. No entanto, se você usar outros operadores de comparação, como “>”, ela não poderá ser chamada de equijunção. A junção interna é ainda dividida em três subtipos:
- Theta junta-se
- Junção natural
- Junte-se à EQUI
União Theta
União Theta Permite mesclar duas tabelas com base na condição representada por theta. As junções theta funcionam para todos os operadores de comparação. São representadas pelo símbolo θ. θO caso geral de uma operação JOIN é chamado de junção theta.
Sintaxe:
A ⋈θ B
Uma junção theta pode usar quaisquer condições nos critérios de seleção.
Considere as tabelas a seguir.
| Tabela A | Tabela B | |||
|---|---|---|---|---|
| coluna 1 | coluna 2 | coluna 1 | coluna 2 | |
| 1 | 1 | 1 | 1 | |
| 1 | 2 | 1 | 3 | |
Por exemplo:
A ⋈ A.column 2 > B.column 2 (B)
| A ⋈ A.coluna 2 > B.coluna 2 (B) | |
|---|---|
| coluna 1 | coluna 2 |
| 1 | 2 |
Junte-se à EQUI
Junte-se à EQUI é realizada quando uma junção theta usa apenas a condição de equivalência. A junção EQUI é a operação mais difícil de implementar de forma eficiente em um [argumento/estrutura]. RDBMSE essa é uma das razões pelas quais um SGBD relacional pode apresentar problemas de desempenho.
Por exemplo:
A ⋈ A.column 2 = B.column 2 (B)
| A ⋈ A.coluna 2 = B.coluna 2 (B) | |
|---|---|
| coluna 1 | coluna 2 |
| 1 | 1 |
Junção Natural (⋈)
União Natural Não utiliza nenhum operador de comparação. Nesse tipo de junção, os atributos devem ter o mesmo nome e domínio. Em uma junção natural, deve haver pelo menos um atributo em comum entre as duas relações.
Realiza uma seleção que estabelece a igualdade entre os atributos que aparecem em ambas as relações e elimina os atributos duplicados.
Exemplo: Considere as duas tabelas a seguir.
| C | |
|---|---|
| Num | Quadrado |
| 2 | 4 |
| 3 | 9 |
| D | |
|---|---|
| Num | Cubo |
| 2 | 8 |
| 3 | 18 |
C ⋈ D
| C ⋈ D | ||
|---|---|---|
| Num | Quadrado | Cubo |
| 2 | 4 | 8 |
| 3 | 9 | 18 |
Junção Externa
An Junção Externa Não exige que cada registro nas duas tabelas unidas tenha um registro correspondente. Nesse tipo de junção, a tabela mantém cada registro mesmo que não exista outro registro correspondente. Os três tipos de junção externa são:
- União Externa Esquerda
- Junção Externa Direita
- Junção Externa Completa
Junção externa esquerda (A ⟕ B)
União Externa Esquerda Retorna todas as linhas da tabela à esquerda, mesmo que nenhuma linha correspondente seja encontrada na tabela à direita. Quando nenhum registro correspondente é encontrado à direita, retorna nulo.
Considere as duas tabelas a seguir.
| A | |
|---|---|
| Num | Quadrado |
| 2 | 4 |
| 3 | 9 |
| 4 | 16 |
| B | |
|---|---|
| Num | Cubo |
| 2 | 8 |
| 3 | 18 |
| 5 | 75 |
AB
| A ⟕ B | ||
|---|---|---|
| Num | Quadrado | Cubo |
| 2 | 4 | 8 |
| 3 | 9 | 18 |
| 4 | 16 | - |
Junção externa à direita (A ⟖ B)
Junção Externa Direita Retorna todas as colunas da tabela à direita, mesmo que nenhuma linha correspondente seja encontrada na tabela à esquerda. Quando nenhuma correspondência é encontrada à esquerda, o valor retornado é nulo. Uma junção externa à direita é o oposto de uma junção à esquerda.
AB
| A ⟖ B | ||
|---|---|---|
| Num | Cubo | Quadrado |
| 2 | 8 | 4 |
| 3 | 18 | 9 |
| 5 | 75 | - |
Junção externa completa (A ⟗ B)
Em um artigo do Junção Externa Completa, todas as tuplas de ambas as relações são incluídas no resultado, independentemente da condição de correspondência.
Exemplo:
AB
| A ⟗ B | ||
|---|---|---|
| Num | Quadrado | Cubo |
| 2 | 4 | 8 |
| 3 | 9 | 18 |
| 4 | 16 | - |
| 5 | - | 75 |


