A linguagem de definição e manipulação de dados SQL (Struc...
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Gabarito: Letra D - apenas para os funcionários cujo código do departamento conste na tabela de departamento.
A correta interpretação do comando SQL apresentado na questão é essencial para identificar a alternativa correta. O comando SELECT é utilizado para recuperar dados de um banco de dados, e o tipo de JOIN especificado determina quais registros serão incluídos no resultado.
No caso apresentado, utiliza-se um INNER JOIN, que retorna apenas os registros que têm correspondência em ambas as tabelas. Isso significa que, se um funcionário não estiver associado a um departamento que conste na tabela departamento, o registro desse funcionário não será retornado.
A expressão ON f.coddept = d.codigo é a condição que relaciona as duas tabelas - funcionário (f) e departamento (d) - pela correspondência entre o código do departamento do funcionário e o código do departamento.
O resultado dessa consulta SQL será um conjunto de registros que contém o nome do funcionário e a sigla do departamento somente para aqueles funcionários que estão ligados a um departamento existente na tabela departamento. Se o código do departamento de um funcionário não estiver presente na tabela departamento, esse funcionário não aparecerá na lista de resultados, descartando assim as alternativas que mencionam o retorno de NULL ou um erro na linha.
A opção de um produto cartesiano, como sugerido na alternativa E, também é descartada, pois o INNER JOIN é uma operação específica que não resulta em um produto cartesiano, mas em uma seleção condicional de registros relacionados.
Portanto, a alternativa correta é a Letra D, pois reflete precisamente o funcionamento do INNER JOIN no SQL, que filtra e retorna apenas os registros com correspondência entre as tabelas, conforme a condição estabelecida.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
No final da query, mostra que o código do departamento do funcionário deve ser igual ao código do departamento (f.coddept = d.codigo), portanto somente se exisitir os dois códigos em ambas as tabelas, mostrará o resultado.
Essa consulta se chama INNER JOIN.
a) Teria que ser left join ao invés de inner join
b) Na query montada não existe a possibilidade de retornar erro
c) Teria que ser outer full join ao invés de inner join
d) Correta
e) Teria que usar o cross join ao invés de inner join e retirar todo o trecho a partir de ON
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo