Pular para o conteúdo principal

Questão de Banco de Dados — Consultas e Comandos em SQL — VUNESP 2024

Banco de DadosConsultas e Comandos em SQL
Código
vu212060
Banca
VUNESP
Órgão
Pref Santo André
Ano
2024
Cargo
ATI ( )

O comando SQL para, a partir da seguinte tabela de um banco de dados relacional

 

Biblioteca (ID, Título, Autor1, Autor2, Ano)

 

criar uma visão denominada Biblio, contendo os atributos ID e Título é:

  1. ACREATE VIEW Biblio (ID, Título) FROM Biblioteca;
  2. BCREATE VIEW Biblio SELECT Biblioteca (ID, Título);
  3. CCREATE VIEW Biblio WHERE Biblio (ID, Título);
  4. DCREATE VIEW Biblio AS (SELECT ID, Título FROM Biblioteca);
  5. ECREATE VIEW Biblio FROM Biblioteca (ID, Título);
Revelar gabarito e comentário

GabaritoD — CREATE VIEW Biblio AS (SELECT ID, Título FROM Biblioteca);

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 Views em SQL: sintaxe do comando CREATE VIEW

Gabarito: letra D. A sintaxe correta para criar uma visão (view) em SQL é CREATE VIEW nome_da_view AS SELECT colunas FROM tabela; — a cláusula AS é obrigatória para ligar a definição da view à consulta que a origina, e a consulta SELECT deve vir logo em seguida, com a cláusula FROM indicando a tabela de origem. É exatamente essa estrutura que a alternativa D reproduz.

Uma view (ou visão) é uma tabela virtual: ela não armazena dados fisicamente, mas representa o resultado de uma consulta SELECT previamente definida. Pense nela como uma "consulta salva" com um nome — toda vez que você a referencia, o banco executa a consulta subjacente e devolve o resultado como se fosse uma tabela. Isso é útil para simplificar consultas complexas, restringir o acesso a determinadas colunas ou linhas e criar uma camada de abstração sobre o esquema físico.

A sintaxe fundamental para criar uma view é:

CREATE VIEW nome_da_view AS
SELECT coluna1, coluna2, ...
FROM nome_da_tabela
WHERE condição;

O ponto central é a palavra-chave AS, que faz a ponte entre o nome da view e a consulta que a define. Sem ela, o comando não é válido. Além disso, a consulta SELECT deve ser escrita de forma completa, com a cláusula FROM obrigatória (a menos que a consulta não acesse tabela alguma, o que é raro).

Vamos aplicar isso ao caso concreto: a tabela Biblioteca tem as colunas ID, Título, Autor1, Autor2 e Ano. Para criar a view Biblio contendo apenas ID e Título, a consulta subjacente deve selecionar exatamente essas duas colunas da tabela Biblioteca. O comando completo fica:

CREATE VIEW Biblio AS
SELECT ID, Título
FROM Biblioteca;

É precisamente essa estrutura que a alternativa D apresenta, com os parênteses envolvendo a consulta SELECT — o que é permitido e não altera o resultado.

A pegadinha desta questão está na ordem e na presença das cláusulas. As alternativas incorretas tentam colocar a lista de colunas junto ao nome da view (como se fosse uma definição de colunas, estilo CREATE TABLE), ou usam FROM antes do SELECT, ou ainda omitem o AS. Nenhuma dessas variações é aceita pela sintaxe padrão do SQL.

Guarde a estrutura canônica — CREATE VIEW nome AS SELECT ... FROM ... — e verifique sempre se o AS está presente e se o SELECT vem antes do FROM. É exatamente nesses dois pontos que as alternativas erradas se separam da correta.

  1. 1CREATE VIEW nome
  2. 2AS (obrigatório)
  3. 3SELECT colunas
  4. 4FROM tabela
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

O erro está na ausência da cláusula AS e na forma como as colunas são listadas. CREATE VIEW Biblio (ID, Título) FROM Biblioteca; não é uma sintaxe válida: a lista de colunas entre parênteses após o nome da view só é aceita em alguns SGBDs quando acompanhada do AS e da consulta SELECT (ex.: CREATE VIEW Biblio (ID, Título) AS SELECT ...). Aqui, além de faltar o AS, não há SELECT algum — o comando simplesmente não define o que a view deve conter.

Alternativa B — ❌ Incorreta

Aqui falta o AS e a sintaxe SELECT Biblioteca (ID, Título) está invertida: o SELECT deve vir antes do FROM, e a lista de colunas deve vir após o SELECT, não após o nome da tabela. A forma correta seria SELECT ID, Título FROM Biblioteca. A alternativa mistura a ordem das cláusulas e omite o AS, tornando o comando inválido.

Alternativa C — ❌ Incorreta

Esta alternativa usa WHERE no lugar de SELECT e FROM. WHERE é uma cláusula de filtragem que só pode aparecer dentro de uma consulta SELECT, nunca como substituta dela. Além disso, Biblio (ID, Título) não é uma referência válida a uma tabela ou view — a view ainda está sendo criada, então não pode ser referenciada dentro do próprio comando de criação. O comando não faz sentido sintático nem semântico.

Alternativa D — ✅ Correta ⟵ GABARITO

Esta alternativa reproduz exatamente a sintaxe padrão: CREATE VIEW Biblio AS (SELECT ID, Título FROM Biblioteca);. O AS conecta o nome da view à consulta; o SELECT escolhe as colunas ID e Título; o FROM indica a tabela de origem Biblioteca. Os parênteses ao redor do SELECT são opcionais e não prejudicam a validade do comando. É a única alternativa que segue a estrutura canônica do CREATE VIEW.

Alternativa E — ❌ Incorreta

O erro está na ordem das cláusulas: FROM Biblioteca (ID, Título) coloca o FROM antes do SELECT e trata a lista de colunas como se fosse um argumento da tabela. A sintaxe correta exige SELECT primeiro, depois FROM, e a lista de colunas deve vir após o SELECT. Além disso, falta o AS. O comando é inválido.

NÃO CAIA NESSA!

A banca explora a confusão entre a sintaxe de CREATE TABLE (onde a lista de colunas vem entre parênteses após o nome) e a de CREATE VIEW (onde a lista de colunas vem dentro do SELECT). Em CREATE TABLE, você define colunas explicitamente; em CREATE VIEW, você as seleciona de uma tabela existente. Repare que as alternativas A e E tentam aplicar o estilo de CREATE TABLE ao CREATE VIEW, enquanto B e C bagunçam a ordem das cláusulas. Com treino, você identifica essas trocas de longe 💪

PEGA ESSA DICA!

Na hora da prova, monte mentalmente o esqueleto CREATE VIEW nome AS SELECT ... FROM ... e confira cada alternativa contra ele. Se faltar o AS, se o SELECT não vier antes do FROM, ou se a lista de colunas estiver fora do SELECT, a alternativa está errada. Essa verificação em três passos resolve a questão em segundos.

Gabarito: letra D

Link permanente: /questoes/vu212060