Questão 111 · Informática: Banco de dados
Julgue os próximos itens, relativos a PostgreSQL e H2 Database.
WITH RECURSIVE t(n) AS ( SELECT 1 UNION SELECT n*2 FROM t ) SELECT n FROM t LIMIT 5; A execução do código precedente, desenvolvido em PostgreSQL 17, apresentará o seguinte resultado. n 1 2 4 8 16 (5 rows)
Julgue o item:
Gabarito: CERTO
Gabarito definitivo divulgado pela banca Cebraspe (TRF6 2025).
Comentário
Gabarito: CERTO.
O item está correto ao afirmar que a execução do código SQL recursivo no PostgreSQL 17 produzirá o resultado indicado. A cláusula WITH RECURSIVE é utilizada para criar Common Table Expressions (CTEs) recursivas.
A CTE t é definida em duas partes:
- Parte âncora (
SELECT 1): Inicializa a recursão com o valorn = 1. - Parte recursiva (
UNION SELECT n*2 FROM t): A cada iteração, seleciona o valor denda iteração anterior e o multiplica por 2. Essa parte continua executando enquanto houver novos resultados.
O SELECT n FROM t LIMIT 5 então seleciona os primeiros 5 resultados gerados pela CTE t.
- 1ª iteração (âncora):
n = 1 - 2ª iteração (recursiva):
n = 1 * 2 = 2 - 3ª iteração (recursiva):
n = 2 * 2 = 4 - 4ª iteração (recursiva):
n = 4 * 2 = 8 - 5ª iteração (recursiva):
n = 8 * 2 = 16
O LIMIT 5 garante que apenas os cinco primeiros valores sejam retornados, que são exatamente 1, 2, 4, 8 e 16.
Fundamentos: SQL:2003 (Standard SQL para CTEs recursivas) · Documentação PostgreSQL (WITH Queries - Common Table Expressions)
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 TRF6 2025 (Analista Judiciário – Área: Apoio Especializado – Especialidade: Governança e Gestão de Tecnologia da Informação), questão 111, com o gabarito definitivo da banca. Comentário: Equipe Cravei · como fazemos e revisamos.