Prévia do material em texto
... Página inicial Disciplinas e Espaços GRADUAÇÃO A DISTÂNCIA 2024 2024-2 Banco De Dados - 2024_02_EAD_A Avaliações P2 - Prova On-line (Acessar) Iniciado em quinta, 6 jun 2024, 01:36 Estado Finalizada Concluída em quinta, 6 jun 2024, 02:56 Tempo empregado 1 hora 20 minutos Avaliar 8,00 de um máximo de 10,00(80%) Questão 1 Correto Atingiu 1,00 de 1,00 A estrutura básica de uma expressão SQL consiste em três cláusulas. Assinale-as: Escolha uma opção: a. Select, distinct, where. b. Distinct, and, as. c. From, where, distinct. d. Select, distinct, from. e. Select, from, where. Sua resposta está correta. A sintaxe do comando SELEC é composta da lista de campos FROM tabela e tendo a cláusula WHERE que indicará uma condição. A resposta correta é: Select, from, where. 10/06/2024, 10:45 P2 - Prova On-line (Acessar) https://ava.candidomendes.edu.br/moodle/mod/quiz/review.php?attempt=517566&cmid=487805 1/7 https://ava.candidomendes.edu.br/moodle/ https://ava.candidomendes.edu.br/moodle/course/index.php?categoryid=8 https://ava.candidomendes.edu.br/moodle/course/index.php?categoryid=175 https://ava.candidomendes.edu.br/moodle/course/index.php?categoryid=177 https://ava.candidomendes.edu.br/moodle/course/view.php?id=13942 https://ava.candidomendes.edu.br/moodle/course/view.php?id=13942§ion=4 https://ava.candidomendes.edu.br/moodle/mod/quiz/view.php?id=487805 Questão 2 Correto Atingiu 1,00 de 1,00 Questão 3 Correto Atingiu 1,00 de 1,00 Analise os comandos abaixo e marque o responsável pela alteração do tipo de campo salário na tabela TABFuncionario em um banco de dados: Escolha uma opção: ALTER SET TABFuncionario MODIFY Salario UNIQUE ALTER SET Salario MODIFY TABFuncionario UNIQUE UPDATE TABLE TABFuncionario SET Salario NOT NULL ALTER TABLE TABFuncionario ADD Salario CHAR(15) ALTER TABLE TABFuncionario MODIFY Salario DECIMAL(10,2) Sua resposta está correta. Para alterar o tipo de campos de uma tabela no MySQL usamos o comando ALTER TABLE com o incremento de MODIFY e os dados. A resposta correta é: ALTER TABLE TABFuncionario MODIFY Salario DECIMAL(10,2) Considere uma tabela em um banco de dados relacional. A tabela apresenta três atributos do tipo texto, sendo CPF o campo chave. Cliente(CPF, Nome, Endereco) Considerando-se que homônimos são pessoas que possuem o mesmo nome, mas CPF diferentes, a expressão SQL que resulta na lista dos Clientes que têm homônimos, juntamente com o número de homônimos, é: Escolha uma opção: a. SELECT C1.Nome, C1.CPF, COUNT(*) FROM Cliente C1, Cliente C2 WHERE C1.CPF C2.CPF AND C1.Nome = C2.Nome GROUP by C1.Nome, C1.CPF HAVING count(*) > 0 b. SELECT DISTINCT C1.Nome, C1.CPF, COUNT(C2) FROM Cliente C1, Cliente C2 WHERE C1.Nome = C2.Nome AND C1.CPF C2.CPF c. SELECT TOP 1 C1.Nome, C1.CPF, COUNT(*) FROM Cliente C1, Cliente C2 WHERE C1.Nome = C2.Nome AND C1.CPF C2.CPF d. SELECT Nome, CPF, (SELECT COUNT(*) FROM Cliente C1 WHERE C.Nome = C1.Nome AND C.CPF C1.CPF) FROM Cliente C e. SELECT Nome, CPF, COUNT(Cliente) FROM Cliente GROUP BY Nome, CPF HAVING COUNT(*) > 1 Sua resposta está correta. A Seleção da contagem de pessoas entre as tabelas clientes1 e clientes2 onde possuam CPF diferentes e sendo homônimos está indica na opção: SELECT C1.Nome, C1.CPF, COUNT(*) FROM Cliente C1, Cliente C2 WHERE C1.CPF C2.CPF AND C1.Nome = C2.Nome GROUP by C1.Nome, C1.CPF HAVING count(*) > 0 A resposta correta é: SELECT C1.Nome, C1.CPF, COUNT(*) FROM Cliente C1, Cliente C2 WHERE C1.CPF C2.CPF AND C1.Nome = C2.Nome GROUP by C1.Nome, C1.CPF HAVING count(*) > 0 10/06/2024, 10:45 P2 - Prova On-line (Acessar) https://ava.candidomendes.edu.br/moodle/mod/quiz/review.php?attempt=517566&cmid=487805 2/7 Questão 4 Correto Atingiu 1,00 de 1,00 Um administrador de dados deseja fazer o seguinte relatório: Todas as pessoas, os mesmos quais já trabalharam e o total recebido por cada filme. Se uma pessoa nunca trabalhou num filme, ela deve aparecer no relatório. A atividade que a pessoa exerceu no filme (ex: ator, diretor, câmera etc.) não é importante para o relatório. Qual consulta retorna o conjunto resposta correto? Escolha uma opção: a. SELECT T.nomePessoa, T.nomeFilme, sum(T.salário) total FROM Pessoa P LEFT OUTER JOIN Trabalha T ON P.nomePessoa = T.nomePessoa LEFT OUTER JOIN Filme F b. SELECT P.nomePessoa, F.nomeFilme, sum(T.salário) total FROM Pessoa P INNER JOIN Trabalha T ON P.nomePessoa = T.nomePessoa INNER JOIN Filme F ON F.nomeFilme = T.nomeFilme WHERE T.atividade IS NOT NULL AND T.salário > 0 GROUP BY P.nomePessoa, F.nomeFilme c. SELECT T.nomePessoa, T.nomeFilme, sum(T.salário) total FROM Pessoa P INNER JOIN Trabalha T ON P.nomePessoa = T.nomePessoa GROUP BY T.nomePessoa, T.nomeFilme d. SELECT P.nomePessoa, T.nomeFilme, sum(T.salário) total FROM Pessoa P LEFT OUTER JOIN Trabalha T ON P.nomePessoa = T.nomePessoa GROUP BY P.nomePessoa, T.nomeFilme HAVING sum(T.salário) > 0 e. SELECT P.nomePessoa, T.nomeFilme, sum(T.salário) total FROM Pessoa P LEFT OUTER JOIN Trabalha T ON P.nomePessoa = T.nomePessoa GROUP BY P.nomePessoa, T.nomeFilme Sua resposta está correta. A operação LEFT OUTER JOIN deve ser entre as tabelas Pessoa e Trabalha, onde a tabela Pessoa é a tabela esquerda, isto é a consulta SQL deve conter a seguinte trecho: Pessoa P LEFT OUTER JOIN Trabalha T ON P.nomePessoa = T.nomePessoa. A resposta correta é: SELECT P.nomePessoa, T.nomeFilme, sum(T.salário) total FROM Pessoa P LEFT OUTER JOIN Trabalha T ON P.nomePessoa = T.nomePessoa GROUP BY P.nomePessoa, T.nomeFilme 10/06/2024, 10:45 P2 - Prova On-line (Acessar) https://ava.candidomendes.edu.br/moodle/mod/quiz/review.php?attempt=517566&cmid=487805 3/7 https://ava.candidomendes.edu.br/moodle/mod/resource/view.php?id=494184 https://ava.candidomendes.edu.br/moodle/mod/resource/view.php?id=494184 https://ava.candidomendes.edu.br/moodle/mod/resource/view.php?id=494184 https://ava.candidomendes.edu.br/moodle/mod/resource/view.php?id=494184 https://ava.candidomendes.edu.br/moodle/mod/resource/view.php?id=494184 https://ava.candidomendes.edu.br/moodle/mod/resource/view.php?id=494184 https://ava.candidomendes.edu.br/moodle/mod/resource/view.php?id=494184 https://ava.candidomendes.edu.br/moodle/mod/resource/view.php?id=494184 https://ava.candidomendes.edu.br/moodle/mod/resource/view.php?id=494184 https://ava.candidomendes.edu.br/moodle/mod/resource/view.php?id=494184 Questão 5 Completo Atingiu 2,00 de 2,00 A execução do comando Select a.id from 'Software' a where a.id not in (select b.idsoft from 'vasoftware' ); terá resultado idêntico à execução do comando a seguir Select distinct a.id from 'Software' a left outer join 'vasoftware' b on a.id=b.idsoft ? Não, no primeiro comando está comerro em seu conteúdo, sendo preferivel a seguinte grafia no FROM: SELECT a.id FROM 'Software' a where a.id not in (SELECT b.idsoft FROM 'vasofware' b); O segundo comando apresenta erro em seu conteúdo, a finalização com ponto e virgula. SELECT distinct a.id FROM 'Sofware' a left outer join 'vasoftware' b on a.id=idsoft; Mesmo que os comando estivessem escritos corretamente não retornariam o resultado iguais. Pois no primeiro select nao sera mostrado registros devido as resultado, ja no segundo serão mostrado todos os registros da segunda tabela devido a cláudula left outer join. Não, pois no primeiro Select não serão mostrados registros devido ao resultado da subcontulta, já no segundo serão mostrados todos registros da segunda tabela devido a cláusula left outer join. Comentário: 10/06/2024, 10:45 P2 - Prova On-line (Acessar) https://ava.candidomendes.edu.br/moodle/mod/quiz/review.php?attempt=517566&cmid=487805 4/7 https://ava.candidomendes.edu.br/moodle/mod/resource/view.php?id=494184 https://ava.candidomendes.edu.br/moodle/mod/resource/view.php?id=494184 https://ava.candidomendes.edu.br/moodle/mod/resource/view.php?id=494184 https://ava.candidomendes.edu.br/moodle/mod/resource/view.php?id=494184 Questão 6 Correto Atingiu 1,00 de 1,00 Considere uma tabela em um bancode dados relacional. A tabela apresenta três atributos do tipo texto, sendo CPF o campo chave. Cliente(CPF, Nome, Endereco) Considerando-se que homônimos são pessoas que possuem o mesmo nome, mas CPF diferentes, a expressão SQL que resulta na lista dos Clientes que têm homônimos, juntamente com o número de homônimos, é: Escolha uma opção: a. SELECT Nome, CPF, (SELECT COUNT(*) FROM Cliente C1 WHERE C.Nome = C1.Nome AND C.CPF C1.CPF) FROM Cliente C b. SELECT DISTINCT C1.Nome, C1.CPF, COUNT(C2) FROM Cliente C1, Cliente C2 WHERE C1.Nome = C2.Nome AND C1.CPF C2.CPF c. SELECT TOP 1 C1.Nome, C1.CPF, COUNT(*) FROM Cliente C1, Cliente C2 WHERE C1.Nome = C2.Nome AND C1.CPF C2.CPF d. SELECT Nome, CPF, COUNT(Cliente) FROM Cliente GROUP BY Nome, CPF HAVING COUNT(*) > 1 e. SELECT C1.Nome, C1.CPF, COUNT(*) FROM Cliente C1, Cliente C2 WHERE C1.CPF C2.CPF AND C1.Nome = C2.Nome GROUP by C1.Nome, C1.CPF HAVING count(*) > 0 Sua resposta está correta. A Seleção da contagem de pessoas entre as tabelas clientes1 e clientes2 onde possuam CPF diferentes e sendo homônimos está indica na opção: SELECT C1.Nome, C1.CPF, COUNT(*) FROM Cliente C1, Cliente C2 WHERE C1.CPF C2.CPF AND C1.Nome = C2.Nome GROUP by C1.Nome, C1.CPF HAVING count(*) > 0 A resposta correta é: SELECT C1.Nome, C1.CPF, COUNT(*) FROM Cliente C1, Cliente C2 WHERE C1.CPF C2.CPF AND C1.Nome = C2.Nome GROUP by C1.Nome, C1.CPF HAVING count(*) > 0 10/06/2024, 10:45 P2 - Prova On-line (Acessar) https://ava.candidomendes.edu.br/moodle/mod/quiz/review.php?attempt=517566&cmid=487805 5/7 Questão 7 Não respondido Vale 2,00 ponto(s). Para o Modelo lógico abaixo, crie os comandos relacionados para criação das tabelas: Podemos utilizar a sequência de comandos abaixo: CREATE TABLE Veiculo ( Marca varcha(200), Modelo varchar(100), Cor varcha(200), CodVeiculo int PRIMARY KEY, Descricao varcha(200)); CREATE TABLE Cliente ( CodCLiente int PRIMARY KEY, Endereco varcha(200), CPF varcha(200), Nome varcha(200)); CREATE TABLE Manutencao ( CodVeiculo int, MOdelo varcha(200), custo double); CREATE TABLE Contrato_Contrata ( Diaria double, Seguro double, CodCliente int, CodVeiculo int, fk_Cliente_CodCLiente int, fk_Veiculo_CodVeiculo int); ALTER TABLE Contrato_Contrata ADD CONSTRAINT FK_Contrato_Contrata_1 FOREIGN KEY (fk_Cliente_CodCLiente) REFERENCES Cliente (CodCLiente); ALTER TABLE Contrato_Contrata ADD CONSTRAINT FK_Contrato_Contrata_2 FOREIGN KEY (fk_Veiculo_CodVeiculo) REFERENCES Veiculo (CodVeiculo); 10/06/2024, 10:45 P2 - Prova On-line (Acessar) https://ava.candidomendes.edu.br/moodle/mod/quiz/review.php?attempt=517566&cmid=487805 6/7 Questão 8 Correto Atingiu 1,00 de 1,00 Para a tabela EMPREGADO de um banco de dados MySql, em que estão cadastrados os dados abaixo e que o campo CPF é chave primária. Para exibir os dados apenas dos empregados cujos os endereços sejam em SP, utiliza-se a instrução: Escolha uma opção: SELECT * FROM EMPREGADO WHERE ENDERECO START BY "SP" SELECT * FROM EMPREGADO WHERE ENDERECO LIKE "%SP" SELECT * FROM EMPREGADO WHERE ENDERECO LIKE "SP*" SELECT * FROM EMPREGADO ENDERECO LIKE "SP%" SELECT * FROM EMPREGADO WHO ENDERECO START BY "SP" Sua resposta está correta. Utilizamos a cláusula LIKE juntamente com o comando SELECT para buscar parte do conteúdo de um campo, que neste caso para indicar a parte final, utilizamos da seguinte forma “%SP”. A resposta correta é: SELECT * FROM EMPREGADO WHERE ENDERECO LIKE "%SP" 10/06/2024, 10:45 P2 - Prova On-line (Acessar) https://ava.candidomendes.edu.br/moodle/mod/quiz/review.php?attempt=517566&cmid=487805 7/7