Baixe o app para aproveitar ainda mais
Prévia do material em texto
IMPLEMENTAÇÃO DE BANCO DE DADOS Lupa Calc. CCT0835_A8_201903344271_V1 1. I. Sempre que uma condição na cláusula where de uma consulta aninhada referencia algum atributo de uma relação declarada na consulta externa, as duas consultas são consideradas correlacionadas. II. Na consulta correlacionada a consulta aninhada é avaliada uma vez para cada tupla (ou combinação de tuplas) na consulta externa. Assinale a opção correta: A primeira afirmação e verdadeira e a segunda é falsa Ambas são verdadeiras e a segunda complementa a primeira Ambas são verdadeiras, mas a segunda não complementa a primeira A primeira afirmação é falsa e a segunda é verdadeira Ambas são falsas 2. Qual dos operadores de comparação de consultas Multi-Linhas a seguir NÃO é válido? <> ALL = ANY = > ALL < ALL 3. Qual dos operadores de conjunto a seguir, devemos tomar cuidado na hora de colocarmos a ordem das tabelas, pois retorna diferentes resultados ao se inverter a ordem das tabelas? UNION MINUS MINUS ALL UNION ALL INTERSECT 4. (NCE-UFRJ - 2005 - BNDES - Análise de Sistemas - Desenvolvimento) Considere um banco de dados simplificado referente ao controle de concursos, constituído pelas tabelas Concurso, Cargo, Candidato e Inscrição, criadas pelo script SQL mostrado abaixo. create table concurso (id_concurso int not null primary key, concurso varchar(60) not null); create table cargo (id_cargo int not null primary key,cargo varchar(60) not null, id_concurso int not null, constraint ci0 foreign key (id_concurso) references concurso (id_concurso)); create table candidato (id_candidato int not null primary key, nome varchar(40) not null); A consulta SQL que produz a lista dos candidatos que se inscreveram em todos os concursos é: select nome from candidato cd where not exists (select * from concurso cc where exists (select * from inscrição i where i.id_concurso=cc.id_concurso and i.id_candidato=cd.id_candidato)) select nome from candidato cd where exists (select * from concurso cc where not exists (select * from inscrição i where i.id_concurso=cc.id_concurso and i.id_candidato=cd.id_candidato)) select nome from candidato cd where not exists (select * from concurso cc where not exists (select * from inscrição i where i.id_concurso <> cc.id_concurso and i.id_candidato <> cd.id_candidato)) select nome from candidato cd where exists (select * from concurso cc where not in (select * from inscrição i where i.id_concurso=cc.id_concurso and i.id_candidato=cd.id_candidato)) select nome from candidato cd where not exists (select * from concurso cc where not exists (select * from inscrição i where i.id_concurso=cc.id_concurso and i.id_candidato=cd.id_candidato)) 5. Sobre o script abaixo: SELECT nome pessoa from Pessoa UNION ALL SELECT numero from Empregado Assinale a alternativa correta: Retorna os nomes dos empregados e os números sem repetição. Não existe retorno, uma vez que os dados são diferentes das colunas. O script retorna dados de diferentes tabelas sem repetição. Retorna os números dos empregados e os nomes das pessoas sem repetição. Retorna os números dos empregados e os nomes das pessoas com repetição. 6. Considere as seguintes tabelas de um banco de dados: - FORNECEDOR { for_codigo, for_nome, for_telefone, for_cidade, est_uf } - ESTADO { est_uf, est_nome } A instrução SQL que recupera os nomes dos estados para os quais não há fornecedores cadastrados é: SELECT e.est_uf FROM estado AS e WHERE e.est_nome NOT IN ( SELECT f.est_uf FROM fornecedor AS f ); SELECT e.est_nome FROM estado AS e WHERE e.est_uf NOT IN ( SELECT f.est_uf FROM fornecedor AS f ); SELECT e.est_nome FROM estado AS e, fornecedor AS f WHERE e.est_nome <> f.est_uf; SELECT e.est_nome FROM estado AS e WHERE e.est_uf IN ( select f.est_uf FROM fornecedor AS f ); SELECT e.est_nome FROM estado AS e, FROM fornecedor AS f WHERE e.est_uf = f.est_uf; 7. Dada a instrução SQL: SELECT * FROM VENDEDOR WHERE salario > (SELECT AVG(salario) FROM VENDEDOR); É correto afirmar que se trata de um exemplo de INNER JOIN. serão selecionados todos os registros da tabela VENDEDOR cujo conteúdo do campo "salario" seja maior que o número de vendedores cadastrados. serão selecionados todos os registros da tabela VENDEDOR cujo conteúdo do campo "salario" seja maior que a soma dos salários de todos os vendedores. se trata de um exemplo de OUTER JOIN. serão selecionados todos os registros da tabela VENDEDOR cujo conteúdo do campo "salario" seja maior que a média dos salários de todos os vendedores. 8. SELECT * FROM TipoImovel T INNER JOIN Imovel I ON T.CODTIPOIMOVEL = I.CODTIPOIMOVEL SELECT * FROM TipoImovel T CROSS JOIN Imovel I ON T.CODTIPOIMOVEL = I.CODTIPOIMOVEL SELECT * FROM TipoImovel T FULL JOIN Imovel I ON T.CODTIPOIMOVEL = I.CODTIPOIMOVEL SELECT * FROM TipoImovel T LEFT JOIN Imovel I ON T.CODTIPOIMOVEL = I.CODTIPOIMOVEL SELECT * FROM TipoImovel T RIGHT JOIN Imovel I ON T.CODTIPOIMOVEL = I.CODTIPOIMOVEL
Compartilhar