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
vu195490
Banca
VUNESP
Órgão
Pref Pindamonhangaba
Ano
2023
Cargo
WDes (Pref Pinda)

Considere a seguinte tabela de um banco de dados relacional:

 

Cliente (CPF, Nome, Peso)

 

O comando para excluir os clientes de peso superior a 80 kg é (supondo o atributo peso expresso em kg) é:

  1. ADELETE Peso.Cliente > 80;
  2. BDELETE Cliente.Peso > 80;
  3. CDELETE FROM Cliente WHERE Peso > 80;
  4. DDELETE Peso > 80 FROM Cliente;
  5. EDELETE FROM Cliente WHERE Peso INF 80;
Revelar gabarito e comentário

GabaritoC — DELETE FROM Cliente WHERE Peso > 80;

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

Comando DELETE no SQL: sintaxe correta para exclusão condicional

Gabarito: letra C. O comando DELETE no SQL segue a sintaxe DELETE FROM nome_da_tabela WHERE condição; — é exatamente o que a alternativa C apresenta, com a tabela Cliente e a condição Peso > 80. As demais alternativas erram na ordem das cláusulas, na ausência do FROM ou no operador de comparação, como veremos a seguir.

O comando DELETE é um comando da DML (Data Manipulation Language), responsável por 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, queremos excluir apenas os clientes com peso superior a 80 kg, então a condição Peso > 80 é obrigatória.

A ordem das cláusulas é fixa: primeiro DELETE FROM, depois o nome da tabela, e por fim o WHERE com a condição. Não existe a forma DELETE Peso > 80 FROM Cliente nem DELETE Cliente.Peso > 80 — o DELETE não recebe a coluna diretamente, apenas a tabela.

O operador de comparação para "maior que" é > (maior). A alternativa E usa INF, que não é um operador SQL válido — o correto seria > ou >= (maior ou igual).

A pegadinha da banca está em testar se o candidato conhece a sintaxe exata do DELETE e não confunde com outros comandos ou com a ordem das cláusulas.

  1. 1DELETE FROM
  2. 2Nome da tabela
  3. 3WHERE condição
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

DELETE Peso.Cliente > 80; — Esta sintaxe está completamente errada. O comando DELETE não recebe a coluna diretamente após a palavra-chave; ele exige a cláusula FROM seguida do nome da tabela. Além disso, a condição deve vir na cláusula WHERE, não como parte da especificação da tabela. A forma correta seria DELETE FROM Cliente WHERE Peso > 80;.

Alternativa B — ❌ Incorreta

DELETE Cliente.Peso > 80; — Aqui também falta a cláusula FROM. O DELETE não aceita a notação Tabela.Coluna como alvo direto; ele precisa do FROM para indicar a tabela e do WHERE para a condição. A sintaxe correta é DELETE FROM Cliente WHERE Peso > 80;.

Alternativa C — ✅ Correta ⟵ GABARITO

DELETE FROM Cliente WHERE Peso > 80; — Esta é a sintaxe correta do comando DELETE. A cláusula FROM especifica a tabela Cliente, e a cláusula WHERE filtra os registros com Peso > 80. Exatamente o que o enunciado pede: excluir os clientes com peso superior a 80 kg.

Alternativa D — ❌ Incorreta

DELETE Peso > 80 FROM Cliente; — A ordem das cláusulas está invertida. O DELETE deve vir seguido de FROM e do nome da tabela, e a condição deve estar na cláusula WHERE após a tabela. A forma correta é DELETE FROM Cliente WHERE Peso > 80;.

Alternativa E — ❌ Incorreta

DELETE FROM Cliente WHERE Peso INF 80; — O operador INF não existe no SQL. O operador correto para "maior que" é >. A sintaxe correta seria DELETE FROM Cliente WHERE Peso > 80;.

PEGA ESSA DICA!

Para memorizar a sintaxe do DELETE, lembre-se da ordem: DELETE FROM + tabela + WHERE + condição. O DELETE nunca recebe colunas diretamente; ele age sobre linhas inteiras da tabela. Se a alternativa tiver DELETE seguido de coluna ou condição sem FROM, está errada.

Gabarito: letra C

Link permanente: /questoes/vu195490