Pular para o conteúdo principal

Questão de Banco de Dados — Consultas e Comandos em SQL — FCC 2026

Banco de DadosConsultas e Comandos em SQL
Código
fc142091
Banca
FCC
Órgão
MPE SE
Ano
2026
Cargo
Ana ( )
Em um banco de dados de um Ministério Público, há uma tabela chamada Denuncia, com os campos: DenunciaID, TipoInfracao, Cidade e DataRegistro. Uma procuradora deseja obter a lista das 5 denúncias mais recentes (ou seja, com as datas mais novas primeiro).   Em condições ideais, para fornecer a resposta a ela, um analista deve utilizar o seguinte comando SQL no PostgreSQL 11+:
  1. ASELECT DenunciaID, TipoInfracao, Cidade, DataRegistro FROM Denuncia ORDER BY DataRegistro DESC LIMIT 5;
  2. BSELECT DenunciaID, TipoInfracao, Cidade, DataRegistro FROM Denuncia FETCH FIRST 5 ROWS;
  3. CSELECT * FROM Denuncia WHERE ROWNUM <= 5 ORDER BY DataRegistro DESC;
  4. DSELECT DenunciaID, TipoInfracao, Cidade, DataRegistro FROM Denuncia ORDER DataRegistro DESC LIMIT 5;
  5. ESELECT TOP 5 DenunciaID, TipoInfracao, Cidade, DataRegistro FROM Denuncia ORDER BY DataRegistro DESC;
Revelar gabarito e comentário

GabaritoA — SELECT DenunciaID, TipoInfracao, Cidade, DataRegistro FROM Denuncia ORDER BY DataRegistro DESC LIMIT 5;

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

SQL no PostgreSQL: ordenação e limitação de resultados

Gabarito: letra A. Para obter as 5 denúncias mais recentes no PostgreSQL, o comando correto combina ORDER BY DataRegistro DESC (ordena da data mais nova para a mais antiga) com LIMIT 5 (restringe o resultado a 5 linhas). A alternativa A é a única que apresenta a sintaxe completa e válida para o PostgreSQL 11+.

A consulta pedida envolve dois conceitos fundamentais do SQL: ordenação e limitação de resultados. A ordenação é feita pela cláusula ORDER BY, que classifica as linhas do resultado com base em uma ou mais colunas. O modificador DESC (de descending) determina a ordem decrescente — no caso de datas, isso significa que as datas mais recentes (maiores) aparecem primeiro. Sem o DESC, a ordenação padrão é crescente (ASC), o que traria as denúncias mais antigas primeiro, exatamente o oposto do desejado.

A limitação de resultados, por sua vez, controla quantas linhas a consulta retorna. No PostgreSQL, a forma mais direta e amplamente utilizada é a cláusula LIMIT, que recebe um número inteiro indicando a quantidade máxima de registros. Essa cláusula é uma extensão do PostgreSQL (e também do MySQL e SQLite) ao padrão SQL, que prevê a cláusula FETCH FIRST (ou FETCH NEXT) para a mesma finalidade. O PostgreSQL 11+ suporta ambas, mas LIMIT é a sintaxe mais comum e idiomática.

É importante notar que a ordem das cláusulas na consulta é crucial. Primeiro, o SELECT define as colunas; depois, o FROM indica a tabela; em seguida, o WHERE filtra (se houver); o ORDER BY ordena; e, por fim, o LIMIT limita. O LIMIT deve vir depois do ORDER BY, pois a limitação é aplicada sobre o conjunto já ordenado. Se invertêssemos a ordem, o banco limitaria primeiro e ordenaria depois, o que poderia retornar as 5 denúncias erradas (as mais antigas, por exemplo, se a tabela estivesse fisicamente ordenada por data de inserção).

Outro ponto que merece destaque é a diferença entre os SGBDs. O comando SELECT TOP 5 é específico do SQL Server e do Access; o ROWNUM é do Oracle; e o FETCH FIRST é padrão SQL (suportado pelo PostgreSQL, mas com sintaxe própria). A banca explora exatamente essa confusão entre dialetos do SQL, apresentando alternativas que seriam corretas em outros bancos, mas não no PostgreSQL.

Guarde a combinação ORDER BY ... DESC + LIMIT n como a receita para "os n registros mais recentes" no PostgreSQL — é exatamente esse par que separa a alternativa correta das demais.

  1. 1SELECT colunas
  2. 2FROM tabela
  3. 3ORDER BY coluna DESC
  4. 4LIMIT N
LEVEL · soulevel.com.br

Alternativa A — ✅ Correta ⟵ GABARITO

A alternativa A apresenta a sintaxe completa e correta para o PostgreSQL: SELECT com as colunas desejadas, FROM Denuncia, ORDER BY DataRegistro DESC (ordena da data mais nova para a mais antiga) e LIMIT 5 (restringe a 5 linhas). A ordem das cláusulas está correta: a ordenação precede a limitação, garantindo que as 5 denúncias mais recentes sejam retornadas.

Alternativa B — ❌ Incorreta

A alternativa B usa FETCH FIRST 5 ROWS, que é uma sintaxe válida no PostgreSQL 11+, mas está incompleta: falta a cláusula ORDER BY DataRegistro DESC. Sem a ordenação, o banco retorna 5 linhas em ordem arbitrária (geralmente a ordem física de armazenamento), não necessariamente as mais recentes. Para que FETCH FIRST funcionasse corretamente, seria necessário acrescentar ORDER BY DataRegistro DESC antes dele.

Alternativa C — ❌ Incorreta

A alternativa C usa ROWNUM, que é um recurso exclusivo do Oracle, não do PostgreSQL. Além disso, a ordem das cláusulas está errada: o WHERE ROWNUM <= 5 filtra as linhas antes da ordenação, o que retornaria as 5 primeiras linhas da tabela (em ordem física) e só depois as ordenaria — resultado incorreto. No PostgreSQL, o equivalente seria usar LIMIT 5 após o ORDER BY.

Alternativa D — ❌ Incorreta

A alternativa D está incorreta porque omite a palavra-chave BY na cláusula ORDER BY, escrevendo apenas ORDER DataRegistro DESC. A sintaxe correta é ORDER BY coluna [ASC|DESC]. Sem o BY, o comando gera um erro de sintaxe no PostgreSQL.

Alternativa E — ❌ Incorreta

A alternativa E usa SELECT TOP 5, que é uma sintaxe específica do SQL Server e do Microsoft Access, não do PostgreSQL. No PostgreSQL, o TOP não existe; a forma correta é usar LIMIT 5 (ou FETCH FIRST 5 ROWS). Além disso, a ordenação está correta (ORDER BY DataRegistro DESC), mas a cláusula de limitação é inválida para o SGBD em questão.

NÃO CAIA NESSA!

A banca mistura dialetos de SQL para confundir. SELECT TOP é do SQL Server, ROWNUM é do Oracle, e FETCH FIRST é padrão SQL (mas exige ORDER BY para ter sentido). No PostgreSQL, a combinação canônica para "os 5 mais recentes" é ORDER BY ... DESC LIMIT 5. Memorize qual sintaxe pertence a cada SGBD e verifique sempre se a ordenação precede a limitação.

PEGA ESSA DICA!

Para questões de "N registros mais recentes", monte o comando em duas etapas: primeiro, defina a ordenação com ORDER BY coluna DESC; depois, aplique a limitação com LIMIT N. Essa sequência lógica evita erros de ordem de cláusulas e garante o resultado esperado em qualquer SGBD que suporte LIMIT.

Gabarito: letra A

Link permanente: /questoes/fc142091