Artigo

Banco de Dados Descomplicado: Tipos de Junção em SQL.

Introdução

Após uma pausa, vamos retomar hoje os temas de Bancos de Dados, uma das áreas de Tecnologia da Informação (TI) mais cobradas nas carreiras gerais e específicas. Conforme havíamos prometido, elaboramos um artigo exclusivo para falar dos principais tipos de junção em SQL.

Decerto, o tópico é delicado, sendo dúvida frequente entre os concurseiros e até profissionais experientes. A chance de se confundir ou esquecer na hora da prova é grande, principalmente para quem não é desenvolvedor e não trabalha com Banco de Dados no dia a dia.

Se você estuda para as carreiras de TI, a leitura desse artigo é certamente obrigatória. Por outro lado, se você estuda para carreiras concorridas da área geral, com provas de alto nível, recomendamos fortemente que fique conosco também. Assim, veja o que vamos aprender:

  • O que é SQL?
  • Consultas em SQL
  • Junção Interna (Inner Join) em SQL
  • Junção Externa (Outer Join) em SQL
  • Produto Cartesiano (Cross Join) em SQL
  • Resumo Esquematizado dos Tipos de Junção

A fim de facilitar o aprendizado, faremos uma breve explicação sobre assuntos relacionados. Porém, o ideal é que você já tenha visto SQL previamente, incluindo consultas básicas. Se não tiver, leia assim mesmo, pois daremos um jeito.

O assunto é bem extenso, mas fizemos um esforço para compactar tudo em um artigo curtinho, de forma que você não gaste muito tempo na leitura. Chega de papo e vamos começar então!

Tempo de leitura aproximada: 5 a 10 minutos

O que é SQL?

Antes de mais nada, a Structured Query Language (SQL) é uma linguagem de consulta estruturada, utilizada em bancos de dados relacionais. Apesar de ter consulta no nome, ela permite realizar diversas outras operações que envolvam dados, tais como inserções, remoções etc.

Ademais, o padrão SQL é universal para os principais bancos. Embora algumas versões de Sistemas Gerenciadores de Bancos de Dados (SGBDs) possam ter funções adicionais, as provas não costumam explorar muito essas diferenças. Ou seja, a cobrança ainda é focada no tradicional mesmo.

ATENÇÃO: O SQL SERVER (MSSQL) é o SGBD comercializado pela Microsoft. Aliás, muitos profissionais costumam chamá-lo apenas de SQL. Entretanto, isso nada tem a ver com o SQL que vamos apresentar. O MSSQL utiliza a linguagem SQL, assim como outros bancos, mas são conceitos diferentes.  

Consultas em SQL

Primeiramente, a linguagem SQL divide os comandos em alguns tipos, tais como Data Manipulation Language (DML), Data Query Language (DQL), Data Definition Language (DDL), Data Control Language (DCL) e Data Transaction Language (DTL).

Não vamos aprofundar cada tipo de comando hoje, pois eles já foram explicados em outro artigo. Dependendo da literatura, os comandos para efetuar consultas denominam-se DQL ou DML. Só para ilustrar, seguem alguns exemplos e sintaxes das consultas em SQL.

DescriçãoSintaxeExemplo
Consulta a todos os campos da tabela (padrão). Caso a condição seja omitida, todas as linhas da tabela serão consultadas.SELECT *
FROM tabela
[WHERE condição]
SELECT *
FROM Colaborador
WHERE nome = “Cristiane”
Consulta a alguns campos discriminados da tabela. Caso a condição seja omitida, todas as linhas da tabela serão consultadas.SELECT campo1, campo2
FROM tabela [WHERE condição]
SELECT nome,
cidade
FROM Colaborador
Tabela 1 – Estrutura básica das consultas em SQL.

Uma junção em SQL é uma consulta especial que envolve duas ou mais tabelas. Dentre os principais tipos cobrados em prova, podemos destacar a junção interna (inner join), a junção externa (outer join) e o produto cartesiano (cross join). Vamos esquematizar tudo nas próximas seções.

ATENÇÃO: Excepcionalmente, alguns autores consideram que uma tabela pode fazer junção com ela própria. Este tipo de relacionamento denomina-se auto-junção ou auto-união (self-join).

Junção Interna (Inner Join) em SQL

DescriçãoSintaxeExemplo
– Compara cada linha da tabela A com as linhas da tabela B, verificando se o valor de um determinado campo de uma é igual ao de outra.

– Se for, os valores do campo em comum das linhas correspondentes das tabelas A e B serão combinados e incluídos no conjunto de resultados.
SELECT *
FROM tabela A INNER JOIN tabela B
ON A.campo = B.campo
SELECT A.nome,             
B.cidade
FROM Colaborador A
INNER JOIN Cidade B ON A.idCidade = B.idCidade
Tabela 2 – Resumo de Junção Interna em SQL.

Figura 1 – Exemplo Prático da Junção Interna.
Figura 1 – Exemplo da Junção Interna.

Junção Externa (Outer Join) em SQL

Normalmente, a cobrança de junção externa divide-se em três tipos: junção externa à esquerda (left outer join), junção externa à direita (right outer join) e junção externa completa (full outer join).

Junção Externa à Esquerda (Left Outer Join) em SQL

DescriçãoSintaxeExemplo
– Compara cada linha da tabela A com as linhas da tabela B, verificando se o valor de um determinado campo de uma é igual ao de outra.

– Se for, os valores do campo em comum das linhas correspondentes da tabela A serão incluídos no conjunto de resultados.

– Caso o valor do campo de A não tenha nenhum valor correspondente em B, o nulo será incluído no conjunto de resultados.
SELECT *
FROM tabela A
LEFT OUTER JOIN tabela B
ON A.campo = B.campo
SELECT A.nome, B.cidade
FROM Colaborador A
LEFT OUTER JOIN Cidade B
ON A.idCidade = B.idCidade
Tabela 3 – Resumo de Junção Externa à Esquerda em SQL.

Figura 2 – Exemplo Prático da Junção Externa à Esquerda.
Figura 2 – Exemplo da Junção Externa à Esquerda.

Junção Externa à Direita (Right Outer Join) em SQL

DescriçãoSintaxeExemplo
– Compara cada linha da tabela A com as linhas da tabela B, verificando se o valor de um determinado campo de uma é igual ao de outra.

– Se for, os valores do campo em comum das linhas correspondentes da tabela B serão incluídos no conjunto de resultados.

– Caso o valor do campo de B não tenha nenhum valor correspondente em A, o nulo será incluído no conjunto de resultados.
SELECT *
FROM tabela A
RIGHT OUTER JOIN tabela B
ON A.campo = B.campo
SELECT A.nome, B.cidade
FROM Colaborador A
RIGHT OUTER JOIN Cidade B
ON A.idCidade = B.idCidade
Tabela 4 – Resumo de Junção Externa à Direita em SQL.

Figura 3 – Exemplo Prático da Junção Externa à Direita.
Figura 3 – Exemplo da Junção Externa à Direita.

Junção Externa Completa (Full Outer Join) em SQL

DescriçãoSintaxeExemplo
– Compara cada linha da tabela A com as linhas da tabela B, verificando se o valor de um determinado campo de uma é igual ao de outra.

– Se for, os valores do campo em comum das linhas correspondentes das tabelas A e B serão combinados e incluídos no conjunto de resultados.

– Caso o valor do campo de A não tenha nenhum valor correspondente em B, o nulo será incluído no conjunto de resultados.

– Caso o valor do campo de B não tenha nenhum valor correspondente em A, o nulo será incluído no conjunto de resultados.

– Em síntese, trata-se de um left outer join e right outer join juntos.  
SELECT *
FROM tabela A
FULL OUTER JOIN tabela B
ON A.campo = B.campo
SELECT A.nome, B.cidade
FROM Colaborador A
FULL OUTER JOIN Cidade B
ON A.idCidade = B.idCidade
Tabela 5 – Resumo de Junção Externa Completa em SQL.

Figura 4 – Exemplo Prático da Junção Externa Completa.
Figura 4 – Exemplo da Junção Externa Completa.

Produto Cartesiano (Cross Join) em SQL

DescriçãoSintaxeExemplo
– Cada linha da tabela A é combinada com as linhas da tabela B.

– Não há comparação de valores.
SELECT *
FROM tabela A
CROSS JOIN tabela B
SELECT A.nome, B.cidade
FROM Colaborador A
CROSS JOIN Cidade B
Tabela 6 – Resumo de Produto Cartesiano em SQL.

Figura 5 – Exemplo Prático do Produto Cartesiano.
Figura 5 – Exemplo do Produto Cartesiano.

Resumo Esquematizado dos Tipos de Junção

Em suma, selecionamos um resumo esquematizado dos tipos de junção em SQL. Sem dúvida, as figuras são emblemáticas e costumam ajudar. Se você gostou, guarde-as em meio físico ou digital, pois elas poderão contribuir com os seus estudos.    

Figura 6 – Resumo Esquematizado das Junções.
Figura 6 – Resumo Esquematizado das Junções (Fonte: DataQuest. Disponível em: https://www.dataquest.io/blog/sql-joins-interview-questions-and-answers/. Acesso em: 30 out. 2023).

Conclusão

Chegamos ao fim do nosso artigo de hoje. Se você ficou conosco até agora, então teve a oportunidade de aprender e/ou revisar tipos de junção em SQL, um dos principais tópicos de Bancos de Dados.

Se quiser aprofundar o conteúdo ou tirar dúvidas específicas, sugerimos que busque o material do Estratégia Concursos. Nós oferecemos diversos cursos em pdf, videoaulas e áudios para você estudar. Saiba mais por meio do link http://www.estrategiaconcursos.com.br/cursos/.

Por fim, recomendamos também que você faça muitas questões para treinar os tópicos apresentados. O acesso ao Sistema de Questões do Estratégia Concursos é feito pelo link: https://concursos.estrategia.com/.

Bons estudos e até a próxima!

Cristiane Selem Ferreira Neves é Bacharel em Ciência da Computação e Mestre em Sistemas de Informação pela Universidade Federal do Rio de Janeiro (UFRJ), além de possuir a certificação Project Management Professional pelo Project Management Institute (PMI). Já foi aprovada nos seguintes concursos: ITERJ (2012), DATAPREV (2012), VALEC (2012), Rioprevidência (2012/2013), TJ-RJ (2022), TCE-RJ (2022) e CGE-SC (2022/2023). Atualmente exerce o cargo efetivo de Auditora de Controle Externo – Tecnologia da Informação no Tribunal de Contas do Estado do Rio de Janeiro (TCE-RJ), além de ser produtora de conteúdo dos Blogs do Estratégia Concursos, OAB e Carreiras Jurídicas.

Concursos Abertos

Quer Saber Tudo de Concursos Previstos?

Confira Nossos Artigos

Concursos 2023

Concursos 2024

Deixe seu comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Veja os comentários
  • Nenhum comentário enviado.