Visão geral dos tipos de junções no SQL Server
A cláusula Join, a palavra-chave JOIN, mescla várias tabelas em um conjunto de resultados. A cláusula FROM precisará incluir todas as tabelas. Separa cada tabela com uma cláusula WHERE de vírgula normalmente incluída.
Podemos colocar a expressão booleana que retorna true ou false, e essas expressões podem se referir a colunas em todas as tabelas.
Tipos de junções no SQL Server
Existem diferentes tipos de junções
- CROSS JOIN
- JUNÇÃO INTERNA
- JUNÇÃO EXTERNA
- JUNTA EXTERNA ESQUERDA
- JUNÇÃO EXTERNA DIREITA
- JUNÇÃO EXTERNA COMPLETA
- AUTO-JUNÇÃO
Vamos entender cada uma dessas junções em detalhes:
1) Junção cruzada
- Este é o JOIN mais simples
- Retorna todas as linhas das duas tabelas
- Cláusula WHERE
- Este também é o menos útil
- É muito ineficiente
- Cria um produto cartesiano
- Palavra-chave CROSS implícita
Exemplo
Portanto, todo mundo da primeira tabela com todos os dados da segunda tabela sem nenhuma tentativa de correspondência, portanto, é isso que você não deseja fazer.
Procure a cláusula FROM em que você possui várias tabelas e não há cláusula WHERE.
2) Junção interna
Saída da consulta:
Suas linhas inicial e última têm valores de coordenação envolvidos com C2. As linhas centrais geralmente não se encontram. O último resultado final fornece todos os valores através das linhas inicial e final, mas ainda não inclui essa linha da seção intermediária não correspondente.
- Isso é mais típico
- Isso enfatizou a natureza relacional do banco de dados
- Ele nos permite corresponder o valor da coluna em uma das tabelas ao valor da coluna em outra das tabelas.
- A chave primária em uma das tabelas e uma chave estrangeira em uma das outras tabelas.
Exemplo
Aqui p.person_id é nossa chave primária em nossa tabela de pessoas,
email_address_person_id é a nossa chave estrangeira na tabela de endereços de email.
Vamos dar uma olhada na mesa da pessoa
Temos essas quatro linhas. E então todas as correspondências dentro da tabela de endereço de email.
Então, no final, devemos ter três pessoas porque temos a pessoa Shannon que não tem um endereço de email
Saída da consulta:
Portanto, obtemos apenas os dados onde há uma correspondência entre as duas colunas em cada uma das tabelas
3) Junção externa
- O INNER JOIN não lida com valores NULL
- A junção externa funciona mesmo quando não há correspondência na segunda tabela.
- NULL colunas se nenhuma correspondência na segunda tabela
- JOIN EXTERNO COMPLETO retorna todas as linhas unidas
- NULL quando nenhuma correspondência nas duas tabelas
a) Junção externa esquerda
Saída da consulta: Você é inicial e também, as últimas linhas têm valores de coordenação envolvidos com C2. As linhas centrais geralmente não se encontram. O último resultado final pode manter todas as linhas da primeira tabela, mas na verdade deixará de fora a linha não correspondida na segunda tabela.
- Outro JOIN relacionado a NULL
- Todas as linhas do lado esquerdo serão retornadas
- NULL para tabela do lado direito não correspondente
Exemplo
Saída da consulta:
Você percebe que há uma linha na tabela Pessoa que não possui valores na tabela de endereço de email. Portanto, a junção externa esquerda nos dará.
b) Junção externa direita
Saída da consulta:
Você é inicial e também, as últimas linhas têm valores de coordenação envolvidos com C2. As linhas centrais geralmente não se encontram. O último resultado final pode manter todas as linhas da segunda tabela, mas na verdade deixará de fora a linha sem correspondência pela primeira tabela.
- Oposto à junção externa esquerda
- Todas as linhas do lado direito serão retornadas
- NULL para uma tabela do lado esquerdo não correspondente
Exemplo Saída da consulta:
Temos três resultados. Aqui está nosso resultado RIGHT OUTER JOIN, onde temos a linha da tabela de endereços de email que não possui uma linha correspondente na tabela à direita.
4) Junção externa completa
Exemplo
Saída da consulta:
Combinamos o resultado da junção externa esquerda e união externa direita
5) Auto-junção
- SELF não é uma palavra-chave. É justamente essa ideia que você pode fazer uma mesa sozinha
- Estranho, mas às vezes útil
- Nenhuma sintaxe especial
- A mesma tabela no lado esquerdo e direito de JOIN
- Útil quando uma tabela contém dados hierárquicos
Exemplo
SELECT *
FROM pedidos
JOIN inscrições
ON orders.subscription_id = subscriptions.subscription_id;
Obtemos a tabela de pedidos e a tabela de assinaturas e JOIN na tabela usando SELECT todas as colunas.
Para obter o resultado.
Conclusão:
As junções são a maneira pela qual realmente damos vida ao modelo relacional. O modelo relacional é sobre a separação de dados, normalizada em várias tabelas, mas capaz de reuni-los novamente quando queremos ver esses relacionamentos. E os diferentes tipos de junções nos permitem fazer isso de maneiras ligeiramente diferentes.
Artigos recomendados
Este foi um guia para tipos de junções no servidor SQL. Aqui discutimos a visão geral e os tipos de junções no SQL com seus exemplos. Você também pode consultar nossos outros artigos sugeridos para saber mais -
- O que é o SQL Server?
- Carreiras no SQL Server
- Treinamento PL SQL
- Operadores MySQL
- Os 6 principais tipos de junções no MySQL com exemplos