SQL: JOINS

Quando estamos lidando com banco de dados relacionais, também trabalhamos com banco de dados normalizados, isto é, tabelas que possuem colunas chaves que remetem a outras tabelas. Com isso, podemos utilizar uma das principais funcionalidades do SQL: os JOINS.

Os JOINS são comandos que permitem juntar duas ou mais tabelas diferentes, quase como se fosse o PROCV do Excel, entretanto, mais poderoso. 

Chamamos de JOINS no plural pois há diferentes tipos de JOINS, com cada comando permitindo executar uma forma de juntar os dados. Vamos começar falando sobre o INNER JOIN.

INNER JOIN

O INNER JOIN basicamente junta todas as observações em comum das duas colunas das duas tabelas. 

Vamos abrir o arquivo rexon_metals e utilizar o comando no SQL editor.

No código acima, consultamos os campos das tabelas CUSTOMER e CUSTOMER_ORDER, isso ocorre pois estamos realmente selecionando todas as colunas a partir de uma união das duas tabelas.

Primeiro, ao selecionar as colunas de ambas as tabelas, temos apenas uma única diferença: como há duas colunas com o mesmo nome, devemos referenciar de qual estamos utilizando, portanto, o uso de CUSTOMER.CUSTOMER_ID.

A questão principal aqui é de onde executamos a união, no caso, sendo em conjunto com o comando FROM, referenciando a tabela principal e em seguida a tabela a ser juntada com INNER JOIN.

O resultado será que todas as observações em comum das duas tabelas nas duas colunas serão juntadas. E  se houver uma observação em uma tabela e na outra não? Ela será excluída da query!

Nós devemos especificar que queremos igualar as duas colunas de ambas as tabelas, por isso, utilizamos ON CUSTOMER.CUSTOMER_ID = CUSTOMER_ORDER.CUSTOMER_ID.

LEFT JOIN

Se analisarmos os resultados da junção por meio do INNER JOIN, veremos que algumas chaves foram excluídas, obviamente. Entretanto, caso não queiramos que isso tenha acontecido, poderíamos utilizar outros tipos de JOINS, como no caso, o LEFT JOIN.

A diferença do LEFT JOIN é que ao invés de juntar dados iguais em ambas as tabelas, a junção se dá inteiramente pelos dados da tabela referenciada à esquerda do comando.

O resultado será a junção com base em CUSTOMER, e suas chaves agora aparecerão na query, entretanto, os valores de CUSTOMER_ID que não possuem uma chave igual apareceram como NULL.

RIGHT JOIN

O RIGHT JOIN é semelhante ao LEFT JOIN, a única diferença é que há uma mudança da direção de qual tabela utilizar no comando. Ao invés da esquerda, como no LEFT JOIN, utiliza a da direita.

OUTER JOIN

Permite incluir todos os registros de ambos as tabelas em uma junção, como se fosse a operação de LEFT e RIGHT JOIN simultaneamente.

*Tanto RIGHT quanto OUTER não são suportados pelo SQLite.

Juntando múltiplas tabelas

Até então tivemos relações entre duas tabelas: CUSTOMER e CUSTOMER_ORDER, entretanto, é possível relacionar mais uma tabela, PRODUCT, que contém a coluna PRODUCT_ID possibilitando relacionar também com CUSTOMER_ORDER.

Agora temos não somente os dados dos clientes, mas também possuímos os dados dos produtos. Por esse motivo os JOINS são extremamente poderosos com um banco de dados relacional: permitem que haja diferentes tabelas em sistemas gerenciadores de bancos de dados que podem ser juntadas por meio dos comandos.

____________________________________________________

Quer aprender mais?

Veja nosso curso de SQL para Economia e Finanças, onde ensinamos todo o processo para aqueles que desejam entrar na área. O curso faz parte da trilha Ciência de Dados para Economia e Finanças.

_________________________________________

Referências

Nield, Thomas. Getting Started with SQL: A Hands-On Approach for Beginners. O'Reilly Media, Inc., 2016.

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Como se comportou a Taxa de Participação no Brasil nos últimos anos? Uma Análise com a Linguagem R

O objetivo deste estudo é analisar a evolução da Taxa de Participação no Brasil, contrastando-a com a Taxa de Desocupação e decompondo suas variações para entender os vetores (populacionais e de força de trabalho) que influenciam o comportamento atual do mercado de trabalho. Para isso, utilizamos a linguagem R em todo o processo, desde a coleta e o tratamento das informações até a visualização dos resultados, empregando os principais pacotes disponíveis no ecossistema da linguagem.

Como se comportou a inflação de serviços no Brasil nos últimos anos?

Uma análise econométrica da inflação de serviços no Brasil comparando os cenários de 2014 e 2025. Utilizando uma Curva de Phillips própria e estimativas da NAIRU via filtro HP, investigamos se o atual desemprego nas mínimas históricas repete os riscos do passado. Entenda como as expectativas de inflação e o hiato do desemprego explicam o comportamento mais benigno dos preços atuais em relação à década anterior.

Como se comportou o endividamento e a inadimplência nos últimos anos? Uma análise utilizando a linguagem R

Neste exercício realizamos uma análise sobre a inadimplência dos brasileiros no período recente, utilizando a linguagem R para examinar dados públicos do Banco Central e do IBGE. Investigamos a evolução do endividamento, da inadimplência e das concessões de crédito, contextualizando-os com as dinâmicas da política monetária (Taxa Selic) e do mercado de trabalho (renda e desemprego).

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

como podemos ajudar?

Preencha os seus dados abaixo e fale conosco no WhatsApp

Boletim AM

Preencha o formulário abaixo para receber nossos boletins semanais diretamente em seu e-mail.