A linguagem de definição e manipulação de dados SQL (Struc...

Próximas questões
Com base no mesmo assunto
Q233377 Banco de Dados
A linguagem de definição e manipulação de dados SQL (Structured Query Language) é um padrão para os bancos de dados relacionais. A expressão SQL “select f.nome, d.sigla from funcionario as f inner join departamento as d on f.coddept = d.codigo” retorna o nome do funcionário e a sigla do departamento
Alternativas

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

select f.nome, d.sigla from funcionario as f inner join departamento as d on f.coddept = d.codigo

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.
A consulta "select f.nome, d.sigla from funcionario as f inner join departamento as d on f.coddept = d.codigo", retornará atravéz do final da query (on f.coddept = d.codigo), tudo que ambas tabelas contém em comum.
Essa consulta se chama INNER JOIN.
Comentando as alternativas:

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