As tabelas DISCIPLINAS, ALUNOS, e MATRICULAS, definidas aba...
Próximas questões
Com base no mesmo assunto
Ano: 2018
Banca:
FAURGS
Órgão:
TJ-RS
Prova:
FAURGS - 2018 - TJ-RS - Administrador de Banco de Dados |
Q921482
Banco de Dados
As tabelas DISCIPLINAS, ALUNOS, e MATRICULAS,
definidas abaixo, usando SQL (padrão SQL2 ou superior),
representam alunos, disciplinas oferecidas em um curso
e matrículas de alunos nestas disciplinas.
create table ALUNOS (coda integer not null primary key, nomea varchar(60) not null);
create table DISCIPLINAS (codd integer not null primary key, nomed varchar(100) not null, professor varchar(2) not null);
create table MATRICULAS (coda integer not null, codd integer not null, nota integer not null, primary key (coda, codd), foreign key (coda) references ALUNOS, foreign key (codd) references DISCIPLINAS);
Considere as seguintes consultas SQL no mesmo padrão, formuladas utilizando subconsultas.
I - SELECT distinct nomea, codd, nota FROM alunos natural join matriculas WHERE codd not in (SELECT distinct codd FROM disciplinas WHERE professor = 'joao da silva');
II - SELECT distinct nomea, codd, nota FROM alunos natural join matriculas WHERE coda not in (SELECT distinct coda FROM disciplinas natural join matriculas WHERE professor = 'joao da silva');
III- SELECT distinct nomea, codd, nota FROM alunos natural join matriculas WHERE coda in (SELECT distinct coda FROM matriculas WHERE nota = 10);
Quais dentre as consultas acima NÃO poderiam ser reescritas em termos das tabelas DISCIPLINAS, MATRICULAS E ALUNOS sem uso de subconsulta em nenhuma porção da consulta SQL, e sem utilizar a mesma tabela mais de uma vez na cláusula FROM?
create table ALUNOS (coda integer not null primary key, nomea varchar(60) not null);
create table DISCIPLINAS (codd integer not null primary key, nomed varchar(100) not null, professor varchar(2) not null);
create table MATRICULAS (coda integer not null, codd integer not null, nota integer not null, primary key (coda, codd), foreign key (coda) references ALUNOS, foreign key (codd) references DISCIPLINAS);
Considere as seguintes consultas SQL no mesmo padrão, formuladas utilizando subconsultas.
I - SELECT distinct nomea, codd, nota FROM alunos natural join matriculas WHERE codd not in (SELECT distinct codd FROM disciplinas WHERE professor = 'joao da silva');
II - SELECT distinct nomea, codd, nota FROM alunos natural join matriculas WHERE coda not in (SELECT distinct coda FROM disciplinas natural join matriculas WHERE professor = 'joao da silva');
III- SELECT distinct nomea, codd, nota FROM alunos natural join matriculas WHERE coda in (SELECT distinct coda FROM matriculas WHERE nota = 10);
Quais dentre as consultas acima NÃO poderiam ser reescritas em termos das tabelas DISCIPLINAS, MATRICULAS E ALUNOS sem uso de subconsulta em nenhuma porção da consulta SQL, e sem utilizar a mesma tabela mais de uma vez na cláusula FROM?