Maximizando a Eficiência com JOIN em Consultas SQL para Combinar Tabelas.

Elen Carvalho
comunidadeds
Published in
6 min readNov 29, 2023

Os vários tipos de JOINS em consultas SQL: Aprimorem suas habilidades de consulta de banco de dados.

Fonte: Bing-IA

A utilização eficiente de consultas SQL é essencial para extrair insights valiosos de bancos de dados complexos. Nesse contexto, o uso de operações JOIN em consultas SQL desempenha um papel crucial, permitindo a combinação estratégica de dados de diferentes tabelas. Vamos explorar como essa técnica poderosa, especialmente em cenários de negócios, pode otimizar a recuperação de informações.

As chaves desempenham um papel fundamental nas operações de JOIN em consultas SQL, pois são utilizadas para estabelecer as relações entre as tabelas. Uma chave é um campo (ou conjunto de campos) em uma tabela que se relaciona com o campo correspondente em outra tabela. Esses campos relacionados são chamados de chaves primárias e estrangeiras.

A normalização em bancos de dados e o uso de SQL para armazenar dados em várias tabelas são práticas fundamentais para projetar sistemas de banco de dados eficientes e sem redundâncias desnecessárias onde estas tabelas estão inter-relacionadas . Vamos entender por que os dados são armazenados em várias tabelas em um banco de dados, especialmente através do conceito de normalização.

Aprender SQL do Zero | Data Starter | Comunidade DS

Por que os dados são armazenados em várias tabelas?

Já parou para pensar sobre isso? Poderíamos ter uma tabela única com todas as informações um “tabelão”.

Mas principalmente pelas questões de processamento, armazenamento das transações de escrita, leitura, atualização e remoção de dados em um banco de dados, torna-se mais eficiente trabalhar com essa estrutura fragmentada. Isto tem a ver com o conceito de normalização que é um processo de projeto de banco de dados que visa reduzir a redundância e melhorar a integridade dos dados. Ela é alcançada por meio da organização de dados em tabelas de maneira eficiente, rápida e sem duplicação de informações.

Por ter essa estrutura fragmentada, nas consultas, muitas das vezes precisamos unir essas informações e é aí que entra o uso dos JOINs fundamental para combinar informações de duas ou mais tabelas com base em uma condição específica. Mas antes vamos entender um outro conceito muito importante para a aplicação dos JOINs que são as chaves primária e estrangeira.

Fonte: Freepik

Entendendo a Harmonia entre Chaves e JOINs:

1.Chave Primária (Primary Key):

É um campo (ou conjunto de campos) em uma tabela que serve como identificador exclusivo para cada registro das linhas na tabela. Geralmente, é usado para estabelecer relações com outras tabelas. A chave primária em uma tabela corresponde à chave estrangeira em outra tabela.

2.Chave Estrangeira (Foreign Key):

É um campo em uma tabela que se refere à chave primária em outra tabela. Identifica a relação entre as tabelas de um banco de dados através da referência de uma coluna. Essa relação permite vincular informações entre as tabelas.

3.Relação entre Tabelas:

Para realizar um JOIN nas consultas SQL entre duas tabelas, você usa a cláusula ON para especificar a condição de junção. Essa condição geralmente é a igualdade entre a chave primária da tabela à esquerda e a chave estrangeira da tabela à direita.
Em resumo, as chaves primárias e estrangeiras são essenciais para estabelecer relações entre tabelas em um banco de dados, e essas relações são exploradas por meio das operações de JOIN em consultas SQL.

Os Tipos de JOINs para consultas em SQL:

Fonte: Freepik

Os diferentes tipos de JOINs que vamos ver a seguir determinam como os registros das tabelas relacionadas serão combinados ou exibidos na consulta. A condição de junção envolve as chaves primárias e estrangeiras.

Para os nossos exemplos vamos pensar em duas tabelas sendo elas:

Tabela Clientes
Tabela Pedidos

1. INNER JOIN: Potencializando Relações Diretas:

O INNER JOIN é como o maestro de uma orquestra, harmonizando dados onde as chaves correspondem. Por exemplo, ao combinar uma tabela de “Clientes” com outra de “Pedidos”, usando o campo “ID Cliente”, obtemos apenas as linhas em que há uma correspondência entre ambas.

Resultado? Uma visão consolidada dos clientes que realizaram pedidos.

2. LEFT JOIN: Incluindo Todos os Elementos da Tabela à Esquerda:

Se quisermos manter todos os registros da tabela à esquerda (Clientes) e trazer os correspondentes da tabela à direita (Pedidos), mesmo que não haja uma correspondência, o LEFT JOIN entra em cena. Isso é útil quando queremos uma lista completa de clientes, independentemente de eles terem feito ou não um pedido.

3. RIGHT JOIN: Focando nos Registros da Tabela à Direita

O RIGHT JOIN é a imagem espelhada do LEFT JOIN. Aqui, todos os registros da tabela à direita (Pedidos) são mantidos, enquanto os correspondentes da tabela à esquerda (Clientes) são incluídos, mesmo que não haja uma correspondência.

4. FULL JOIN: Unindo Tudo em Uma Só Visão

Queremos todos os registros de ambas as tabelas, certo? É aí que o FULL JOIN brilha. Ele retorna todas as linhas quando há uma correspondência e preenche com NULLs quando não há.

Ao utilizar essa query o servidor está retornando o seguinte código de erro: (Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ‘OUTER JOIN pedidos AS p ON c.id_pedido = p.id_pedido)

Pesquisando consegui entender que o MySQL não suporta o comando FULL JOIN, mesmo tentando ‘FULL OUTER JOIN’ o erro continuava.
Foi utilizado para criar as demonstrações o MySQL Workbench versão 8.0.

Para solucionar e conseguir trazer a demonstração retornando todas as linhas quando há uma correspondência e preencher com NULLs quando não há correspondência, você pode emular um FULL OUTER JOIN utilizando o UNION de um LEFT JOIN e um RIGHT JOIN. Assim, sua query ficaria:

5. CROSS JOIN: Multiplicando Possibilidades

O CROSS JOIN não se baseia em chaves, simplesmente combina cada linha da tabela à esquerda com cada linha da tabela à direita. Imagine criar todas as combinações possíveis entre clientes e pedidos.

Conclusão: A Sinfonia de Dados com JOIN em Consultas SQL

Dominar as diferentes formas de JOIN em consultas SQL é como reger uma orquestra de dados, permitindo a criação de harmonias precisas entre diferentes conjuntos de informações. Essa habilidade é vital para qualquer profissional que busca extrair o máximo valor de conjuntos de dados interconectados. Pratique e aprimore suas habilidades de JOIN para elevar suas consultas SQL a novas alturas de eficiência.

Agora que você conhece os tipos diferentes de JOINs e como usá-los. Indico testar diferentes tipos de junções, pois ficará mais claro quando você colocar em uso e ver os resultados do exemplo do seu banco de dados. Como dica para complementar o seus estudos segue um vídeo com uma explicação bem detalhada sobre União de Tabelas com SQL e segue também um vídeo te ensinando a Como Estudar SQL de Forma Prática porque a prática é o caminho para o aprimoramento.

--

--

Elen Carvalho
comunidadeds

A melhor forma de aprender é compartilhando conhecimentos.