Questão de Banco de Dados — Consultas e Comandos em SQL — VUNESP 2023
Banco de Dados›Consultas 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 é:
ADELETE FROM SELECT Veiculo WHERE Modelo = ‘Sedan’ AND Ano > 2018;
BDELETE FROM Veiculo WHERE Modelo = ‘Sedan’ AND Ano > 2018;
CDELETE SELECT Veiculo FOR Modelo = ‘Sedan’ AND Ano > 2018;
DDELETE Veiculo.Modelo = ‘Sedan’ AND Veiculo.Ano > 2018;
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.
1DELETE FROM tabela
2WHERE condição
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.