DEV Community

Rafaela Carvalho
Rafaela Carvalho

Posted on

Entendendo JOINs no SQL: Unindo Tabelas Como um Profissional

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;
Enter fullscreen mode Exit fullscreen mode

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;
Enter fullscreen mode Exit fullscreen mode

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;
Enter fullscreen mode Exit fullscreen mode

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;
Enter fullscreen mode Exit fullscreen mode

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;
Enter fullscreen mode Exit fullscreen mode

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!

Top comments (0)