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" é:
- 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
- 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
- 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
- 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