Pular para o conteúdo principal

Questão de Banco de Dados — Oracle — FCC 2015

Banco de DadosOracle
Código
fc018254
Banca
FCC
Órgão
CNMP
Ano
2015
Nível
Superior
Cargo
Analista do - Tecnologia de Informação e Comunicação Desenvolvimento de Sistemas
Considere a instrução Oracle PL/SQL a seguir. CREATE VIEW valores (nome, minsal, maxsal, medsal)AS SELECT d.depnome, MIN(e.sal), MAX(e.sal), AVG(e.sal) FROM empregado e, departamento dWHERE e.depnro=d.depnro GROUP BY d.depnome;Considere a existência das tabelas departamento e empregado, relacionadas de forma que cada departamento possa ter um ou muitos empregados ligados a ele. Na tabela departamento existem os campos depnro (chave primária) e depnome e na tabela empregado existem os campos empnro (chave primária), empnome, cargo, sal e depnro (chave estrangeira). Considere que em ambas as tabelas existem registros cadastrados relacionando adequadamente departamentos a empregados.A instrução acima
  1. Aestá incorreta, pois não é possível criar view para exibir valores a partir de duas ou mais tabelas.
  2. Bestá incorreta, pois a subconsulta que define a view não pode conter a cláusula GROUP BY
  3. Cestá correta, porém, os apelidos definidos para as colunas não serão aplicados, pois eles deveriam estar na subconsulta e não após a cláusula CREATE VIEW.
  4. Destá incorreta, pois a função para obter a média dos valores contidos no campo sal é MED e não AVG.
  5. Eestá correta, e a view será criada com os nomes de departamento e os valores mínimo, máximo e médio dos salários por departamento.
Revelar gabarito e comentário

GabaritoE — está correta, e a view será criada com os nomes de departamento e os valores mínimo, máximo e médio dos salários por departamento.

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”.

Criação de View com Agregação no Oracle PL/SQL

Gabarito: letra E. A instrução CREATE VIEW apresentada é sintaticamente correta; ela cria uma view que exibe, por departamento, o nome do departamento e os valores mínimo, máximo e médio dos salários dos empregados, utilizando junção (JOIN), GROUP BY e funções agregadas (MIN, MAX, AVG).

A banca testa o conhecimento sobre a sintaxe de criação de views no Oracle PL/SQL, especialmente em relação a:

  • Possibilidade de uso de múltiplas tabelas na consulta (via junção).

  • Permissão do uso de cláusulas como GROUP BY e funções agregadas.

  • Local correto para definir apelidos das colunas da view.

  • Nome da função de média (AVG, não MED).

Alternativa A — ❌ Incorreta

Afirma que não é possível criar view a partir de duas ou mais tabelas. É plenamente possível: uma view pode ser baseada em qualquer consulta SELECT válida, incluindo junções entre tabelas.

Alternativa B — ❌ Incorreta

Afirma que a subconsulta que define a view não pode conter GROUP BY. Não procede: GROUP BY é perfeitamente permitido em views, sendo útil para resumir dados.

Alternativa C — ❌ Incorreta

Diz que os apelidos definidos após CREATE VIEW não serão aplicados, e que deveriam estar na subconsulta. A sintaxe está correta: a cláusula CREATE VIEW valores (nome, minsal, maxsal, medsal) define os nomes das colunas da view, e esses nomes substituirão os nomes derivados da consulta. A forma alternativa seria colocar aliases na própria SELECT, mas a forma apresentada é igualmente válida.

Alternativa D — ❌ Incorreta

Afirma que a função para obter a média é MED e não AVG. A função correta é AVG (abreviação de average). MED não é uma função agregada padrão do Oracle SQL.

Alternativa E — ✅ Correta ⟵ GABARITO

A instrução está correta: a view será criada com sucesso, exibindo, para cada departamento, o nome (d.depnome) e os valores mínimo (MIN(e.sal)), máximo (MAX(e.sal)) e médio (AVG(e.sal)) dos salários dos empregados daquele departamento, agrupados por d.depnome.

Gabarito: letra E

Link permanente: /questoes/fc018254