ANC - Analista em Computação - Ênfase em Desenvolvimento Oracle PL/SQL
Considere a tabela relacional:Estudante(IdEstudante, nome, idade)Legenda: Campos sublinhados compõem a chave primária da tabela.Considere o seguinte comando SQL:CREATE OR REPLACE VIEW questaoASSELECT AVG(IDADE) FROM ESTUDANTEAnalise as assertivas abaixo e assinale a alternativa correta.I. Uma VIEW é uma consulta que, ao ser executada, tem seu resultado armazenado no banco de dados.II. Na cláusula FROM do comando SELECT, uma VIEW pode ser referenciada como se fosse uma tabela.III. A consulta da VIEW (questao) está obtendo o valor da média das idades dos estudantes.IV. Para saber quais estudantes são mais velhos que a média, basta consultar SELECT MAX(IDADE) FROM QUESTAO
ATodas estão corretas.
BTodas estão incorretas.
CApenas I e IV estão corretas.
DApenas II e III estão corretas.
EApenas III e IV estão corretas.
Revelar gabarito e comentário▾
GabaritoD — Apenas II e III estão corretas.
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”.
Views no SQL: conceito e uso
Gabarito: letra D. Apenas as assertivas II e III estão corretas. Uma VIEW é uma tabela virtual que não armazena resultados (I é falsa); pode ser referenciada em FROM como tabela (II é verdadeira); a view criada calcula a média das idades (III é verdadeira); e a consulta proposta em IV não retorna estudantes mais velhos que a média (IV é falsa).
Assertiva
Descrição
Correta?
Motivo
I
Uma VIEW armazena o resultado da consulta no banco de dados.
❌
VIEW é tabela virtual; resultado é computado sob demanda, não armazenado (exceto materialized view).
II
Uma VIEW pode ser referenciada na cláusula FROM como se fosse uma tabela.
✅
No SQL, VIEW pode ser usada em qualquer lugar onde uma tabela é esperada, inclusive no FROM.
III
A VIEW questao obtém a média das idades dos estudantes.
✅
A consulta SELECT AVG(IDADE) FROM ESTUDANTE retorna exatamente a média das idades.
IV
SELECT MAX(IDADE) FROM QUESTAO retorna estudantes mais velhos que a média.
❌
A VIEW retorna um único valor (a média), não possui coluna IDADE; a consulta falharia ou retornaria a própria média, não os estudantes.
Assertiva I — ❌ Incorreta
Uma VIEW não armazena o resultado de sua consulta no banco de dados; ela é uma tabela virtual que representa o resultado da consulta subjacente. O dado é computado sob demanda, a menos que se trate de uma materialized view (não é o caso). A definição diz: uma view é uma consulta armazenada que se comporta como uma tabela, mas não ocupa armazenamento físico para os dados retornados.
Assertiva II — ✅ Correta
No SQL, uma VIEW pode ser usada em qualquer lugar onde uma tabela é esperada, inclusive na cláusula FROM. A sintaxe SELECT ... FROM nome_da_view é perfeitamente válida.
Assertiva III — ✅ Correta
A view foi criada com SELECT AVG(IDADE) FROM ESTUDANTE, que retorna a média das idades de todos os estudantes. Portanto, a consulta da view obtém exatamente esse valor.
Assertiva IV — ❌ Incorreta
A view questao retorna um único valor (a média). Um comando SELECT MAX(IDADE) FROM QUESTAO falharia porque a view não possui uma coluna chamada IDADE – ela retorna apenas o resultado da função de agregação (normalmente sem nome ou com nome implícito como AVG(IDADE)). Além disso, mesmo que houvesse uma coluna, MAX sobre um único valor seria o próprio valor. Para listar os estudantes com idade acima da média, seria necessário algo como:
SELECT * FROM ESTUDANTE WHERE IDADE > (SELECT AVG(IDADE) FROM ESTUDANTE);
NÃO CAIA NESSA!
A assertiva IV confunde o resultado da view (que é um valor agregado) com uma tabela que contenha as idades individuais. O candidato pode pensar que a view se comporta como uma tabela real e que MAX(IDADE) retornaria a maior idade, mas a view não possui essa coluna. Além disso, a operação para comparar com a média exige uma subconsulta, não uma simples função de agregação sobre a view.
Conclusão: Estão corretas apenas II e III → alternativa D.