Pular para o conteúdo principal

Questão de Banco de Dados — SQL — UFMT 2014

Banco de DadosSQL
Código
qq095547
Banca
UFMT
Órgão
UFMT
Ano
2014
Nível
Superior
Cargo
Engenharia da Computação
Considere as tabelas abaixo.CREATE TABLE Funcionario (cod INTEGER NOT NULL PRIMARY KEY, nome VARCHAR(30), supervisor INTEGER, departamento INTEGER, CONSTRAINT Supervisor_FK FOREIGN KEY (supervisor) REFERENCES Funcionario (cod), CONSTRAINT Depart_FK FOREIGN KEY (departamento) REFERENCES Funcionario (cod));CREATE TABLE Departamento(cod INTEGER NOT NULL PRIMARY KEY, nome VARCHAR(30), filial INTEGER, CONSTRAINT Filial_FK FOREIGN KEY (filial) REFERENCES Filial (cod));CREATE TABLE Filial(cod INTEGER NOT NULL PRIMARY KEY, nome VARCHAR(30));O código SQL que realiza a consulta “Selecione os nomes dos funcionários que trabalham em filiais diferentes de seus supervisores" é:
  1. ASELECT F.nomeFROM Funcionario F, Departamento D, Filial Fi, Funcionario Sup, Filial Fi2WHERE F.dep = D.cod AND D.filial = Fi.cod AND F.supervisor = Sup.cod AND Sup.dep = D.cod AND Fi.cod = D.filial AND Fi.cod != Fi2.cod
  2. BSELECT F.nomeFROM Funcionario F, Departamento D, Filial Fi, Funcionario Sup, Filial Fi2WHERE F.dep = D.cod AND D.filial = Fi.cod AND F.supervisor = Sup.cod AND Fi.cod != Fi2.cod
  3. CSELECT F.nome FROM Funcionario F, Departamento D, Filial Fi, Funcionario Sup, Departamento D2, Filial Fi2WHERE F.dep = D.cod AND D.filial = Fi.cod AND F.supervisor = Sup.cod AND Sup.dep = D2.cod AND Fi2.cod = D2.filial AND Fi.cod != Fi2.cod
  4. DSELECT F.nome FROM Funcionario F, Departamento D, Filial Fi, Filial Fi2WHERE F.dep = D.cod AND D.filial = Fi.cod AND F.supervisor = F.cod AND Fi.cod != Fi2.cod
Revelar gabarito e comentário

GabaritoC — SELECT F.nome FROM Funcionario F, Departamento D, Filial Fi, Funcionario Sup, Departamento D2, Filial Fi2 WHERE F.dep = D.cod AND D.filial = Fi.cod AND F.supervisor = Sup.cod AND Sup.dep = D2.cod AND Fi2.cod = D2.filial AND Fi.cod != Fi2.cod

Link permanente: /questoes/qq095547