Caso a sintaxe INSERT INTO nome_da_views SELECT * FROM tab...
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: E - Errado
Vamos esclarecer o conceito: As views são objetos do banco de dados que representam uma visualização de uma ou mais tabelas através de uma consulta SQL pré-definida. Elas podem ser utilizadas para simplificar consultas complexas, restringir o acesso a dados ou fornecer uma forma de compatibilidade com versões anteriores de aplicações.
Contrariamente ao que é afirmado no enunciado da questão, tanto o MySQL quanto o Oracle permitem a inserção de dados em views, contanto que elas satisfaçam certas condições. Estas são:
- A view deve encapsular uma consulta que referencia basicamente uma só tabela de dados.
- As modificações feitas através da view devem ser aplicáveis diretamente a essa tabela subjacente.
- A consulta da view não pode conter cláusulas como GROUP BY, DISTINCT, SUM(), COUNT() e etc., que alteram o número de linhas e a natureza dos dados retornados.
No caso de views que compreendem múltiplas tabelas ou incluem funções de agregação, a inserção de dados pode não ser possível ou pode ser muito restrita, dependendo das especificações do SGBD. Assim, a afirmação proposta é errônea, pois a possibilidade de inserção em views existe, mas está sujeita a determinadas regras e limitações.
É importante para o aluno entender que os SGBDs são projetados para fornecer flexibilidade na manipulação de dados, e isso inclui a capacidade de inserir dados em views, em situações específicas. Reconhecer essas nuances é essencial para trabalhar eficientemente com bancos de dados e resolver problemas que possam surgir.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
A view is not updatable if it contains any of the following:
Aggregate functions (SUM(), MIN(), MAX(), COUNT(), and so forth)
DISTINCT
GROUP BY
HAVING
UNION or UNION ALL
Subquery in the select list
Certain joins (see additional join discussion later in this section)
Nonupdatable view in the FROM clause
A subquery in the WHERE clause that refers to a table in the FROM clause
Refers only to literal values (in this case, there is no underlying table to update)
Uses ALGORITHM = TEMPTABLE (use of a temporary table always makes a view nonupdatable)
Multiple references to any column of a base table.
With respect to insertability (being updatable with INSERT statements), an updatable view is insertable if it also satisfies these additional requirements for the view columns:
There must be no duplicate view column names.
The view must contain all columns in the base table that do not have a default value.
The view columns must be simple column references and not derived columns. A derived column is one that is not a simple column reference but is derived from an expression.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo