Questão FC265911
Em SQL (ANSI), a cláusula Join (Junção) pode ser usada para combinar as tuplas de duas ou mais tabelas permitindo consultas mais complexas que levam em consideração o relacionament
Linguagem SQL
IDECAN · 2024
Em SQL (ANSI), a cláusula Join (Junção) pode ser usada para combinar as tuplas de duas ou mais tabelas permitindo consultas mais complexas que levam em consideração o relacionamento entre os dados. Considerando uma tabela chamada “alunos” com os campos id_aluno, nome; e uma outra tabela chamada “matriculas” com os campos id_turma, id_aluno. Marque a alternativa que resulta corretamente nos nomes dos alunos matriculados na turma de id 14 ou que não estão matriculados em nenhuma turma.
- SELECT nome FROM alunos LEFT OUTER JOIN matriculas using(id_aluno) WHERE id_turma = 14 OR id_turma IS NULL;
- SELECT nome FROM alunos RIGHT OUTER JOIN matriculas using(id_aluno) WHERE id_turma = 14 OR id_turma IS NOT NULL;
- SELECT nome FROM alunos JOIN matriculas on(id_ aluno) WHERE id_turma = 14 OR id_turma IS NULL;
- SELECT nome FROM alunos LEFT JOIN matriculas using(id_aluno) WHERE id_turma = 14 OR id_turma IS NOT NULL;
Mostrar resposta e comentário
Gabarito
A
Comentário do professor
O comando SELECT nome FROM alunos LEFT OUTER JOIN matriculas USING(id_aluno) WHERE id_turma = 14 OR id_turma IS NULL; realiza duas etapas essenciais: primeiro combina as tabelas, depois aplica o filtro.
Com LEFT OUTER JOIN todas as linhas da tabela alunos são mantidas; as colunas de matriculas aparecem quando há correspondência e ficam NULL quando não há matrícula. O uso de USING(id_aluno) define a chave de junção e evita colunas duplicadas.
Após a junção, a cláusula WHERE id_turma = 14 OR id_turma IS NULL seleciona somente os alunos cuja matrícula é da turma 14 ou que não possuem matrícula (portanto id_turma IS NULL).
Finalmente, SELECT nome projeta apenas o nome dos alunos que atendem esses critérios, retornando assim os matriculados na turma 14 e os não matriculados.
Conteúdo do catálogo FC Concursos · Atualizado em