FC ConcursosFC Concursos

Questão FC514903

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

Linguagem SQL

CEBRASPE (CESPE) · 2025

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, Alcunha) VALUES (10, 'Gargamel');

INSERT INTO Envolvido (idEnvolvido, Alcunha) VALUES (20, 'Vingador');

INSERT INTO Envolvido (idEnvolvido, Alcunha) VALUES (30, 'Esqueleto');

 

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 (idInquerito, NumeroInquerito, idTipoInquerito) VALUES (1,111, 13); INSERT INTO Inquerito (idInquerito, NumeroInquerito, idTipoInquerito) VALUES(2,121, 12); INSERT INTO Inquerito (idInquerito, NumeroInquerito, idTipoInquerito) VALUES(3,131, 13); INSERT INTO Inquerito (idInquerito, NumeroInquerito, idTipoInquerito) VALUES (4,444, 11); INSERT INTO Inquerito (idInquerito, NumeroInquerito, idTipoInquerito) VALUES(5,555, 13);

 

INSERT INTO EnvolvidoInquerito (idEnvolvido, idInquerito) VALUES (10, 1); INSERT INTO EnvolvidoInquerito (idEnvolvido, idInquerito) VALUES (20, 1); INSERT INTO EnvolvidoInquerito (idEnvolvido, idInquerito) VALUES (20, 4); INSERT INTO EnvolvidoInquerito (idEnvolvido, idInquerito) VALUES (30, 1); INSERT INTO EnvolvidoInquerito (idEnvolvido, idInquerito) VALUES (30, 3); INSERT INTO EnvolvidoInquerito (idEnvolvido, idInquerito) VALUES (30, 5);

 

Considerando as informações precedentes, julgue o próximo item, relativos à SQL.

 

Considere o comando SQL a seguir.

 

SELECT TI.TipoInquerito, COUNT(I.idTipoInquerito) 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 INNER JOIN TipoInquerito AS TI ON I.idTipoInquerito = TI.idTipoInquerito GROUP BY TI.TipoInquerito;

 

Ao ser executado, esse comando apresentará o resultado seguinte.

 

TipoInquerito        quantidade

Inquérito Policial        1 Inquérito Civil           1 Notícia-Crime             3

Mostrar resposta e comentário

Gabarito

Errado

Comentário do professor

A afirmativa está ERRADA porque o resultado apresentado não condiz com o efeito das junções e do agrupamento sobre os dados inseridos.

O comando usa INNER JOIN, logo só aparecem linhas com correspondência em todas as tabelas. Como não há ligação para o inquérito de id 2 (tipo "Inquérito Civil"), esse tipo não é retornado. Além disso, a função agregada \(COUNT(I.idTipoInquerito)\) conta cada linha do resultado após as junções, ou seja, cada participação de um envolvido em um inquérito é contabilizada, não apenas inquéritos distintos.

Aplicando isso aos dados, as ocorrências por tipo são: Notícia-Crime = 5 (inquéritos 1,1,1,3,5 nas várias participações) e Inquérito Policial = 1 (inquérito 4). Para contar inquéritos distintos por tipo usar \(COUNT(DISTINCT\ I.idInquerito)\).

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo