Em um banco de dados SQL há duas tabelas: departamento e fun...

Próximas questões
Com base no mesmo assunto
Q465665 Banco de Dados

Em um banco de dados SQL há duas tabelas: departamento e funcionario. A tabeladepartamento está ligada à tabela funcionario em uma relação um-para-muitos. Os campos da tabela departamento são DepNo (chave primária), DNome e DLocal. Já a tabela funcionario contém os campos FunNo (chave primária), DepNo (chave estrangeira), FNome, FCargo e FSal.

Para exibir apenas o nome de todos os funcionários, sem repetição, e o respectivo nome do departamento que o funcionário trabalha, utiliza-se a instrução

Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Gabarito: Letra D

A questão aborda o tema da realização de consultas SQL utilizando junção (JOIN) entre duas tabelas. Para resolver a questão, é necessário compreender como estabelecer uma relação correta entre as tabelas departamento e funcionario de modo a retornar a informação desejada. Em bancos de dados relacionais, as tabelas são frequentemente interconectadas através de chaves estrangeiras, que permitem que uma tabela faça referência a chaves primárias de outra tabela, criando assim uma relação entre elas.

A alternativa correta (D) está correta porque utiliza a sintaxe adequada para realizar a junção entre as tabelas com a cláusula WHERE, especificando a condição de igualdade entre o campo DepNo da tabela funcionario (referenciado como f.DepNo) e o campo correspondente da tabela departamento (referenciado como d.DepNo). Isto é essencial para garantir que cada funcionário seja associado corretamente ao seu departamento.

A instrução SELECT f.FNome, d.DNome FROM funcionario f, departamento d WHERE f.DepNo = d.DepNo seleciona, sem repetição, o nome dos funcionários e o nome de seus respectivos departamentos, garantindo que o resultado reflita apenas as combinações válidas entre funcionários e seus departamentos.

As outras alternativas falham em estabelecer uma condição correta para a junção ou apresentam sintaxe inadequada, o que resultaria em um conjunto de resultados incorreto ou mais amplo do que o solicitado na questão.

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

alguem explica por favor?

Então, 2 tabelas:

Departamento e Funcionário.

departamento com os campos: DepNo (Chave primária), DNome e Dlocal.

funcionario com os campos: FunNo (Chave primária), DepNo (Chave estrangeira), FNome, Fcargo e Fsal.

Ele pede nome do funcionário (FNome) e nome do departamento (DNome) que ele trabalha.

FNome está na tabela funcionario, ou seja = f.FNome;

DNome está na tabela departamento, ou seja = d.DNome;

Em seguida vem: "from funcionario f, departamento d"

Isto aqui é para facilitar a digitação da consulta. Ele chamou a tabela "funcionario" de "f" e a tabela "departamento" de "d". Ou seja, ao invés de escrever "select funcionario.FNome, departamento.DNome", ele substituiu a palavra toda por uma letra. E daí ele pode chamar a tabela sempre de F ou D nessa consulta.

Continuando:

"where f.DepNo=d.DepNo"

Aqui ele faz a ligação da CHAVE ESTRANGEIRA (DepNo) da tabela funcionario com a CHAVE PRIMÁRIA (DepNo) da tabela departamento, para que seja gerada a consulta com os nomes dos funcionários e seus respectivos departamentos.

E a consulta final é essa:

D) select f.FNome, d.DNome from funcionario f, departamento d where f.DepNo=d.DepNo;

Caso alguém tenha algo a acrescentar ou a me corrigir, por favor faça. Sou iniciante em BD.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo