Logo Passei Direto
Buscar
LiveAo vivo

P2 - Prova On-line (BDCorrigida)

User badge image
martelunatico

em

Ferramentas de estudo

Questões resolvidas

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?

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 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
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
e. 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

Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Questões resolvidas

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?

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 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
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
e. 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

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&section=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

Mais conteúdos dessa disciplina