Questão nº 15
Questão de Tecnologia da Informação · FGV CVM 2024 (nº 15)
A analista Letícia realizou a seguinte consulta em Structured Query Language (SQL):
```sql
WITH RECURSIVE anos (n) AS
(
SELECT 2020 UNION ALL
SELECT n + 1 FROM anos WHERE n < 2025
)
SELECT * FROM anos
```
Logo após, Letícia realizou outra consulta em SQL:
```sql
SELECT 2024 FROM anos
```
O sistema gerenciador de banco de dados usado por Letícia suporta o recurso Common Table Expression do SQL.
As consultas efetuadas por Letícia retornaram, respectivamente:
- Auma tupla e um erro;
- Bseis tuplas e um erro; (alternativa correta)
- Cum erro e duas tuplas;
- Duma tupla e uma tupla;
- Eseis tuplas e duas tuplas.
Resposta comentada
Gabarito Alternativa B
Uma Common Table Expression (CTE) é uma consulta nomeada temporária, como uma "tabela virtual", que existe apenas para ser usada dentro de uma única instrução SQL (SELECT, INSERT, UPDATE, DELETE). Uma CTE Recursiva é um tipo especial de CTE que pode se referir a si mesma para gerar sequências ou estruturas hierárquicas, começando com uma parte "âncora" e continuando com uma parte "recursiva" até que uma condição de parada seja atingida.
- (A) Incorreta: A primeira consulta retorna seis tuplas, não uma.
- (B) Correta: A primeira consulta define uma CTE recursiva
anosque começa em 2020 e incrementa de 1 em 1 até 2025 (inclusive), gerando os valores 2020, 2021, 2022, 2023, 2024 e 2025. Portanto,SELECT * FROM anosretorna seis tuplas. A segunda consulta,SELECT 2024 FROM anos, tenta referenciar a CTEanosfora do escopo da instrução SQL onde ela foi definida. Uma CTE é temporária e só existe para a instrução em que foi declarada. Como a segunda consulta é uma instrução separada, a CTEanosnão está mais disponível, resultando em um erro (geralmente "tabela ou visão não encontrada"). A armadilha aqui é pensar que a CTEanospersiste após a execução da primeira instrução. - (C) Incorreta: A primeira consulta retorna seis tuplas, não um erro, e a segunda retorna um erro, não duas tuplas.
- (D) Incorreta: Ambas as partes estão incorretas.
- (E) Incorreta: A segunda consulta resulta em um erro, não em duas tuplas.
Fonte: FGV CVM 2024 Analista CVM - TI Sistemas e Desenvolvimento (Perfil 8) (Caderno Tipo 1). Reproduzida para fins de estudo.