Questão 117 · Informática: Banco de dados
Texto associado à questão
(idInquerito, VALUES (1,111, 13); (idInquerito, VALUES(2,121, 12); (idInquerito, VALUES(3,131, 13); (idInquerito, VALUES (4,444, 11); (idInquerito, VALUES(5,555, 13); INSERT INTO EnvolvidoInquerito idInquerito) VALUES (10, 1); INSERT INTO EnvolvidoInquerito idInquerito) VALUES (20, 1); INSERT INTO EnvolvidoInquerito idInquerito) VALUES (20, 4); INSERT INTO EnvolvidoInquerito idInquerito) VALUES (30, 1); INSERT INTO EnvolvidoInquerito idInquerito) VALUES (30, 3); INSERT INTO EnvolvidoInquerito idInquerito) VALUES (30, 5); (idEnvolvido, (idEnvolvido, (idEnvolvido, (idEnvolvido, (idEnvolvido, (idEnvolvido, Considerando as informações precedentes, julgue os próximos itens, relativos à SQL.
conjunto = ((2,7), (4,9), (6,4), (4,6)) resultado = 0 x = 0 while x < len(conjunto): numeros = conjunto[x] y = numeros[1] if y == 4: pass else: resultado += y x += 1 print(f"O Resultado é: {resultado}")
Ao ser executado, esse código apresentará o seguinte resultado.
O Resultado é: 22 Ao ser executado, esse código apresentará o seguinte resultado.
O Resultado é: 2 A seguir, são apresentados um modelo de banco de dados, consistindo de quatro tabelas, bem como os comandos SQL utilizados para a criação e a inserção de dados nessas tabelas.
criação das tabelas CREATE TABLE Envolvido ( idEnvolvido INT NOT NULL, Alcunha VARCHAR(45) NULL DEFAULT NULL, PRIMARY KEY (idEnvolvido)); CREATE TABLE TipoInquerito ( idTipoInquerito INT NOT NULL, TipoInquerito VARCHAR(45) NOT NULL, PRIMARY KEY (idTipoInquerito)); CREATE TABLE Inquerito ( idInquerito INT NOT NULL, NumeroInquerito INT NOT NULL, idTipoInquerito INT NOT NULL, PRIMARY KEY (idInquerito), FOREIGN KEY (idTipoInquerito) REFERENCES TipoInquerito (idTipoInquerito)); CREATE TABLE EnvolvidoInquerito ( idEnvolvido INT NOT NULL, idInquerito INT NOT NULL, PRIMARY KEY (idEnvolvido, idInquerito), FOREIGN KEY (idEnvolvido) REFERENCES Envolvido (idEnvolvido), FOREIGN KEY (idInquerito) REFERENCES Inquerito (idInquerito)); inserção de dados nas tabelas INSERT INTO Envolvido (idEnvolvido, VALUES (10, 'Gargamel'); INSERT INTO Envolvido (idEnvolvido, VALUES (20, 'Vingador'); INSERT INTO Envolvido (idEnvolvido, VALUES (30, 'Esqueleto'); Alcunha) Alcunha) Alcunha)
INSERT INTO TipoInquerito (idTipoInquerito, TipoInquerito)
VALUES (11, 'Inquérito Policial'); INSERT INTO TipoInquerito (idTipoInquerito, TipoInquerito) VALUES (12, 'Inquérito Civil'); INSERT INTO TipoInquerito (idTipoInquerito, TipoInquerito) VALUES (13, 'Notícia-Crime'); INSERT INTO Inquerito NumeroInquerito, idTipoInquerito)
INSERT INTO Inquerito NumeroInquerito, idTipoInquerito)
INSERT INTO Inquerito NumeroInquerito, idTipoInquerito)
INSERT INTO Inquerito NumeroInquerito, idTipoInquerito)
INSERT INTO Inquerito NumeroInquerito, idTipoInquerito)
Considere o comando SQL que se segue. SELECT DISTINCT E.Alcunha, COUNT(I.idInquerito) AS Quantidade FROM Envolvido AS E INNER JOIN EnvolvidoInquerito AS EI ON E.idEnvolvido = EI.idEnvolvido INNER JOIN Inquerito AS I ON EI.idInquerito = I.idInquerito GROUP BY E.Alcunha; Esse comando, ao ser executado, apresentará o resultado a seguir. Alcunha Gargamel Vingador Esqueleto Quantidade 1 1 1
Julgue o item:
Gabarito: ERRADO
Gabarito definitivo divulgado pela banca Cebraspe (PF 2025).
Comentário
Gabarito: ERRADO.
O comando SQL fornecido busca a contagem de inquéritos para cada envolvido. Para analisar o resultado, precisamos considerar os dados inseridos na tabela EnvolvidoInquerito:
INSERT INTO EnvolvidoInquerito (idEnvolvido, idInquerito) VALUES (10, 1);(Gargamel - 1 inquérito)INSERT INTO EnvolvidoInquerito (idEnvolvido, idInquerito) VALUES (20, 1);(Vingador - 1 inquérito)INSERT INTO EnvolvidoInquerito (idEnvolvido, idInquerito) VALUES (20, 4);(Vingador - 1 inquérito)INSERT INTO EnvolvidoInquerito (idEnvolvido, idInquerito) VALUES (30, 1);(Esqueleto - 1 inquérito)INSERT INTO EnvolvidoInquerito (idEnvolvido, idInquerito) VALUES (30, 3);(Esqueleto - 1 inquérito)INSERT INTO EnvolvidoInquerito (idEnvolvido, idInquerito) VALUES (30, 5);(Esqueleto - 1 inquérito)
Ao executar o INNER JOIN e o GROUP BY E.Alcunha, o resultado correto seria:
- Gargamel: associado ao
idEnvolvido = 10, que aparece 1 vez na tabelaEnvolvidoInquerito. Quantidade = 1. - Vingador: associado ao
idEnvolvido = 20, que aparece 2 vezes na tabelaEnvolvidoInquerito. Quantidade = 2. - Esqueleto: associado ao
idEnvolvido = 30, que aparece 3 vezes na tabelaEnvolvidoInquerito. Quantidade = 3.
O resultado apresentado no item está incorreto, pois indica que Vingador e Esqueleto têm apenas 1 inquérito cada, quando na verdade têm 2 e 3, respectivamente.
Dica: Em questões de SQL com JOIN e GROUP BY, sempre trace a ligação dos dados entre as tabelas e conte manualmente os registros para cada grupo antes de comparar com o resultado proposto.
Fundamentos: Conceitos de SQL: INNER JOIN · Conceitos de SQL: GROUP BY · Conceitos de SQL: COUNT()
Comentário gerado pela Cravei IA a partir do enunciado e do gabarito definitivo divulgado pela banca, e conferido por uma verificação automática. A IA pode errar: o gabarito oficial sempre prevalece.
Fonte: prova Cebraspe PF 2025 (Estatístico), questão 117, com o gabarito definitivo da banca. Comentário: Equipe Cravei · como fazemos e revisamos.