Pular para o conteúdo principal

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

Banco de DadosConsultas e Comandos em SQL
Código
vu195649
Banca
VUNESP
Órgão
UFABC
Ano
2023
Cargo
Téc ( )

Considere a seguinte tabela de um banco de dados relacional:

 

Veiculo (RENAVAM, Marca, Modelo, Ano)

 

O comando SQL para excluir os veículos de modelo Sedan e ano superior a 2018 é:

  1. ADELETE FROM SELECT Veiculo WHERE Modelo = ‘Sedan’ AND Ano > 2018;
  2. BDELETE FROM Veiculo WHERE Modelo = ‘Sedan’ AND Ano > 2018;
  3. CDELETE SELECT Veiculo FOR Modelo = ‘Sedan’ AND Ano > 2018;
  4. DDELETE Veiculo.Modelo = ‘Sedan’ AND Veiculo.Ano > 2018;
  5. ESELECT DEL FROM Veiculo HAVING (Modelo, Ano) (= ‘Sedan’, > 2018);
Revelar gabarito e comentário

GabaritoB — DELETE FROM Veiculo WHERE Modelo = ‘Sedan’ AND Ano > 2018;

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

Sintaxe do comando DELETE no SQL

Gabarito: letra B. O comando DELETE FROM Veiculo WHERE Modelo = 'Sedan' AND Ano > 2018; é o único que segue a sintaxe padrão do SQL para exclusão de registros: DELETE FROM nome_da_tabela WHERE condição. As demais alternativas apresentam erros de sintaxe, como uso incorreto de SELECT, FOR, HAVING ou atribuição direta de valores.

O comando DELETE é uma instrução da sublinguagem DML (Data Manipulation Language), utilizada para remover registros de uma tabela. Sua sintaxe básica é:

DELETE FROM nome_da_tabela
WHERE condição;

A cláusula WHERE é opcional, mas, sem ela, todos os registros da tabela seriam excluídos. No caso da questão, a condição é composta por dois critérios: Modelo = 'Sedan' e Ano > 2018, unidos pelo operador lógico AND, que exige que ambos sejam verdadeiros para que o registro seja excluído.

É importante destacar que o DELETE remove apenas os dados, mantendo a estrutura da tabela. Para excluir a tabela inteira, utiliza-se DROP TABLE; para remover todos os registros sem condição, pode-se usar TRUNCATE TABLE, que é mais rápido, mas não permite filtros.

A banca VUNESP explora a confusão entre a sintaxe do DELETE e a de outros comandos, como SELECT e UPDATE. O candidato deve memorizar a estrutura exata de cada comando para evitar erros.

  1. 1DELETE FROM tabela
  2. 2WHERE condição
  3. 3Filtros com AND/OR
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

A sintaxe DELETE FROM SELECT Veiculo é inválida. O comando DELETE não aceita a cláusula SELECT após FROM. A estrutura correta é DELETE FROM Veiculo, sem o SELECT.

Alternativa B — ✅ Correta ⟵ GABARITO

Esta alternativa segue exatamente a sintaxe padrão: DELETE FROM Veiculo WHERE Modelo = 'Sedan' AND Ano > 2018;. O comando exclui os registros da tabela Veiculo que atendem às duas condições: modelo igual a 'Sedan' e ano superior a 2018.

Alternativa C — ❌ Incorreta

A sintaxe DELETE SELECT Veiculo FOR é inválida. O comando DELETE não utiliza SELECT nem FOR; a cláusula correta para filtrar é WHERE.

Alternativa D — ❌ Incorreta

A sintaxe DELETE Veiculo.Modelo = 'Sedan' AND Veiculo.Ano > 2018; é inválida. O comando DELETE não aceita atribuição direta de valores como em UPDATE. A estrutura correta exige DELETE FROM seguido de WHERE.

Alternativa E — ❌ Incorreta

A sintaxe SELECT DEL FROM Veiculo HAVING (Modelo, Ano) (= 'Sedan', > 2018); é inválida. O comando SELECT não é usado para exclusão, e a cláusula HAVING é utilizada para filtrar grupos após GROUP BY, não para condições simples. Além disso, a sintaxe (= 'Sedan', > 2018) não é válida em SQL.

Gabarito: letra B

Link permanente: /questoes/vu195649