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!
Top comments (0)