DEV Community

Cover image for SQL - Joins
Matheus Camilo
Matheus Camilo

Posted on • Edited on

SQL - Joins

1. Introdução

   Em bancos de dados, a cláusula JOIN em SQL é um recurso fundamental que permite a combinação de informações provenientes de diferentes tabelas. Essa operação é essencial para unir colunas com base em valores comuns, proporcionando a criação de conjuntos de dados mais abrangentes e significativos.

   O SQL padrão ANSI define cinco tipos principais de JOIN - INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN e CROSS JOIN - cada um desempenhando um papel específico na obtenção de dados conforme as necessidades da consulta. Em um cenário onde os dados são distribuídos em várias tabelas lógicas, o uso eficiente de JOINS é crucial para garantir a integridade e a abrangência das análises realizadas em bancos de dados relacionais. Essa capacidade de unir dados de maneira coesa e eficiente é fundamental para explorar toda a potencialidade dos sistemas de gerenciamento de banco de dados.

 

2. Desenvolvimento

1. Inner Join

1.1 Definição

   O INNER JOIN (ou só apenas join) é uma cláusula utilizada para unir registros que possuem correspondentes em ambas tabelas. Caso formos representar utilizando conceitos de conjutos, o resultado desta junção é a intersecção entre a Tabela A e B. Gera como resultado uma linha da Tabela A para cada registro correspondente da tabela B.

Inner Join

1.2 Exemplo

SELECT * FROM tabela_a
INNER JOIN tabela_b 
    ON tabela_a.id = tabela_b.tabela_a_id;
Enter fullscreen mode Exit fullscreen mode

2. Left Join

2.1 Definição

   O LEFT JOIN é uma cláusula utilizada para unir registros de tabelas, trazendo todos os registros da tabela A e os seus correspondentes da tabela B. Em um registro da tabela A que não haja correspondente da tabela B, os campos da tabela B unidos a este registro aparecem vazios.

Left Join

2.2 Exemplo

SELECT * FROM tabela_a
LEFT JOIN tabela_b 
    ON tabela_a.id = tabela_b.tabela_a_id;
Enter fullscreen mode Exit fullscreen mode

3. Right Join

3.1 Definição

   O RIGHT JOIN é uma cláusula utilizada para unir registros de tabelas, trazendo todos os registros da tabela B e os seus correspondentes da tabela A. Em um registro da tabela B que não haja correspondente da tabela A, os campos da tabela A deste registro aparecem vazios. Ele é praticamente o inverso do LEFT JOIN

Right Join

3.2 Exemplo

SELECT * FROM tabela_a
RIGHT JOIN tabela_b 
    ON tabela_a.id = tabela_b.tabela_a_id;
Enter fullscreen mode Exit fullscreen mode

4. Full Join

4.1 Definição

   O FULL JOIN é uma cláusula utilizada para unir registros de tabelas, tanto os correspondentes quanto os que não possuem correspondência alguma de ambas as tabelas. O resultado dessa junção é o resultado do LEFT JOIN + RIGHT JOIN.

Full Join

4.2 Exemplo

SELECT * FROM tabela_a
FULL JOIN tabela_b 
    ON tabela_a.id = tabela_b.tabela_a_id;
Enter fullscreen mode Exit fullscreen mode

5. Cross Join

5.1 Definição

   O CROSS JOIN é uma cláusula utilizada para gerar o produto escalar entre as tabelas, ou seja, juntando cada registro da tabela A com cada registro da tabela B. Esta operção tem como resultado todas as probabilidades de junção de registros entre as duas tabelas. Por fim, a quantidade de linhas resultante é dada pela quantidade de linhas da tabela A vezes a quantidade de linhas da tabela B.

Cross Join

5.2 Exemplo

SELECT * FROM tabela_a
CROSS JOIN tabela_b;
Enter fullscreen mode Exit fullscreen mode

Vantagens e Desvantagens de se utilizar os JOINs

Vantagens

  • Funciona muito bem com tabelas normalizadas
  • Simplificar consultas complexas entre várias tabelas relacionadas
  • Melhora no Desempenho caso utilizado de forma correta no cenário adequado

Desvantagens

  • É mais fácil consultar as informações necessárias em apenas em uma tabela em vez de obter dados de terceiras
  • Não é recomendado para tabelas desnormalizadas
  • Quanto mais tabelas envolvidas, maior é o impacto em performance da consulta

 

Exemplos de aplicações no mercado:

Inner Join

Left Join

Right Join

Full Join

Cross Join

 

3. Conclusão

   O JOIN no SQL é uma cláusula importantíssima para manipular dados, fazer a relação entre tabelas e permitir filtragem para entendimento e controle. Assim, é uma forma de gerenciar a complexidade de bancos de dados grandes e gerar insights precisos sobre eles.

   Os diversos tipos de JOINS fornecem uma maneira poderosa de combinar dados de várias tabelas. O INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN e CROSS JOIN são úteis em diferentes situações, permitindo manipulação e análise eficaz de dados complexos. Dominar esses tipos de JOINS amplia suas habilidades em SQL, tornando suas consultas mais eficientes e precisas.

 

Referências

Top comments (0)