SóProvas


ID
1112917
Banca
FCC
Órgão
AL-PE
Ano
2014
Provas
Disciplina
Banco de Dados
Assuntos

Em um banco de dados há duas tabelas, departamento e funcionario, cujos campos são:

Departamento:

DepNo - int - primary key - not null

DNome - varchar(50) - not null

DLocal - varchar(40)

Funcionario:

FunNo - int - primary key - not null

DepNo - int - foreign key - not null

FNome - varchar(50) - not null

FCargo - varchar(40)

FSal - double

Ambas as tabelas possuem muitos registros cadastrados, que não incluem valores nulos. Considere as instruções SQL a seguir:

I. select funcionario.FunNo, funcionario.FNome, departamento.DNome from funcionario INNER JOIN departamento ON funcionario.DepNo = departamento.DepNo;

II. select funcionario.FunNo, funcionario.FNome, departamento.DNome from funcionario, departamento where funcionario.DepNo = departamento.DepNo;

III. select f.FunNo, f.FNome, d.DNome from (select departamento.DepNo, departamento.DNome from departamento) as d, funcionario as f where d.DepNo = f.DepNo;

IV. select DISTINCT f.FunNo, f.FNome, d.DNome from funcionario f, departamento d;


Para fazer com que sejam exibidos todos os números (FunNo) e nomes (FNome) dos funcionários, e o respectivo nome do departamento (DNome) ao qual estão associados, sem repetição dos dados dos funcionários, pode-se utilizar a instrução contida em:

Alternativas
Comentários
  • Na alternativa IV faltou "amarrar" os atributos chave:

    O correto seria algo assim:  select DISTINCT f.FunNo, f.FNome, d.DNome from funcionario f, departamento d where f.DepNo = d.DepNo;

  • Marlo, observe que ele pede todos. Acho que o DISTINCT o principal erro da questão IV.

  • Colega Bruno, 

    O trecho "e o respectivo nome do departamento (DNome) ao qual estão associados" faz com que seja obrigatório "amarrar" as tabelas Funcionario e Departamento por meio da cláusula WHERE.

    Bons estudos!
  • Bruno,

    ele não pede todos, veja: " sem repetição dos dados dos funcionários" 

  • O trecho "e o respectivo nome do departamento (DNome) ao qual estão associados" faz com que seja obrigatório "amarrar" as tabelas Funcionario e Departamento por meio da cláusula WHERE.

     

    E a proposição IV faz um produto cartesiano, misturando tudo, pelo que eu entendo.