Entendendo JOINs no SQL: Unindo Tabelas Como um Profissional
Tags: datascience, sql, beginners, tutorial
Published: 2023-08-28 19:14:47

Olá a todos! Hoje, vamos mergulhar em um dos aspectos mais fundamentais do SQL: os JOINs. Os JOINs são usados para combinar linhas de duas ou mais tabelas, baseadas em uma relação lógica entre elas.

Primeiro, vamos falar sobre o INNER JOIN. Este tipo de JOIN retorna registros com valores correspondentes em ambas as tabelas. Vejamos um exemplo:

```
SELECT Alunos.Nome, Cursos.NomeCurso 
FROM Alunos 
INNER JOIN Cursos ON Alunos.CursoID = Cursos.ID;
```

No exemplo acima, estamos combinando as tabelas Alunos e Cursos, retornando somente os alunos que estão inscritos em um curso.

O próximo é o LEFT JOIN. Este JOIN retorna todos os registros da tabela à esquerda (a primeira tabela) e os registros correspondentes da tabela à direita (a segunda tabela). Se não houver correspondência, o resultado é NULL do lado direito. Exemplo:

```
SELECT Alunos.Nome, Cursos.NomeCurso 
FROM Alunos 
LEFT JOIN Cursos ON Alunos.CursoID = Cursos.ID;
```

Neste exemplo, obteremos todos os alunos, estejam eles inscritos em um curso ou não.

O RIGHT JOIN é o oposto do LEFT JOIN, retornando todos os registros da tabela à direita e os registros correspondentes da tabela à esquerda. Se não houver correspondência, o resultado é NULL do lado esquerdo.

Por fim, temos o FULL JOIN. Este tipo de JOIN retorna todos os registros quando há uma correspondência na tabela à esquerda (primeira tabela) ou na tabela à direita (segunda tabela).

```
SELECT Alunos.Nome, Cursos.NomeCurso 
FROM Alunos 
FULL JOIN Cursos ON Alunos.CursoID = Cursos.ID;
```

Neste caso, obteremos todos os alunos e todos os cursos, estejam os alunos inscritos ou não em um curso.

## **Removendo valores nulos**

Por fim, vamos lidar com valores NULL nas consultas. Ao executar JOINs, especialmente LEFT, RIGHT e FULL JOINs, você pode se deparar com valores NULL nos resultados onde não há correspondência.

No SQL, podemos usar a função IS NULL para testar se um campo é NULL, e a função IS NOT NULL para testar se um campo não é NULL. Por exemplo, para encontrar todos os alunos que estão inscritos em um curso, você poderia escrever:

```
SELECT Alunos.Nome, Cursos.NomeCurso 
FROM Alunos 
LEFT JOIN Cursos ON Alunos.CursoID = Cursos.ID
WHERE Cursos.NomeCurso IS NOT NULL;
```

Neste caso, estamos excluindo todas as linhas onde NomeCurso é NULL, ou seja, onde o aluno não está inscrito em nenhum curso.

Além disso, o SQL oferece a função COALESCE que retorna o primeiro valor não nulo em uma lista de expressões. Por exemplo, você poderia substituir valores NULL por uma string como 'Não inscrito' da seguinte forma:

```
SELECT Alunos.Nome, COALESCE(Cursos.NomeCurso, 'Não inscrito') 
FROM Alunos 
LEFT JOIN Cursos ON Alunos.CursoID = Cursos.ID;
```

Neste caso, qualquer aluno que não esteja inscrito em um curso terá 'Não inscrito' no campo NomeCurso, em vez de NULL.

Tratar corretamente os valores NULL é essencial para manter a integridade e a precisão dos seus resultados, por isso, certifique-se de levar em conta ao realizar suas consultas SQL.

Espero que este artigo tenha lhe dado uma melhor compreensão de como os JOINs funcionam no SQL, e como lidar com valores NULL. Lembre-se, a prática leva à perfeição, então continue explorando e experimentando!