Em um banco de dados SQL há duas tabelas: departamento e fun...
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
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