Pular para o conteúdo principal

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

Banco de DadosConsultas e Comandos em SQL
Código
qa630746
Banca
Quadrix
Órgão
COREN PR
Ano
2024
Cargo
Ana TI ( )
Quanto à Linguagem de Modelagem Unificada (UML), aos diagramas utilizados na Análise Orientada a Objetos e à Structured Query Language (SQL), julgue o item a seguir.   Caso se deseje excluir da base de dados apenas o enfermeiro com ID 121, é suficiente executar o comando SQL a seguir. DELETE * FROM Enfermeiro WHERE ID = 121;
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoE — Errado

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

Gabarito: ERRADO (letra E). O comando apresentado está incorreto porque a sintaxe do DELETE não utiliza o asterisco (*) após a palavra-chave — a forma correta é DELETE FROM Enfermeiro WHERE ID = 121;. O * é um curinga usado no SELECT para indicar todas as colunas, mas no DELETE não há essa necessidade, pois o comando remove linhas inteiras, não colunas.

O comando DELETE é um dos comandos da sublinguagem DML (Data Manipulation Language) do SQL, responsável por excluir registros (linhas) de uma tabela. Sua sintaxe básica é:

DELETE FROM nome_da_tabela
WHERE condição;

A cláusula WHERE é opcional, mas extremamente importante: sem ela, todos os registros da tabela seriam excluídos. No caso do enunciado, o objetivo é excluir apenas o enfermeiro com ID 121, então a cláusula WHERE ID = 121 está correta e cumpre exatamente esse papel de filtro.

O erro está no * logo após DELETE. Diferentemente do SELECT, onde SELECT * significa "todas as colunas", no DELETE não se especifica colunas — a exclusão é sempre de linhas completas. Portanto, o * é desnecessário e inválido na sintaxe padrão SQL. Alguns SGBDs podem até aceitar DELETE * por tolerância, mas não é a sintaxe correta e não deve ser usada.

Vale destacar que o comando DELETE pertence à DML, assim como SELECT, INSERT e UPDATE. A DML é uma das subdivisões do SQL, que também inclui DDL (CREATE, ALTER, DROP, TRUNCATE), DCL (GRANT, REVOKE, DENY) e DTL (COMMIT, ROLLBACK, SAVEPOINT). Saber a qual sublinguagem cada comando pertence é um conhecimento frequentemente cobrado em provas.

A pegadinha desta questão é justamente a presença do *, que pode passar despercebida para quem está acostumado a ver SELECT *. A banca explora a confusão entre a sintaxe do SELECT e a do DELETE. Guarde a regra: no DELETE, nunca use *; a sintaxe é DELETE FROM tabela WHERE condição.

  1. 1DELETE FROM tabela
  2. 2WHERE condição (filtro)
  3. 3Remove linhas inteiras
LEVEL · soulevel.com.br

Item — ❌ ERRADO

O comando DELETE * FROM Enfermeiro WHERE ID = 121; está incorreto porque a sintaxe do DELETE não admite o asterisco. A forma correta é DELETE FROM Enfermeiro WHERE ID = 121;. O * é um curinga exclusivo do SELECT para indicar todas as colunas; no DELETE, a exclusão é de linhas inteiras, então não há o que selecionar. A cláusula WHERE ID = 121 está correta e garante que apenas o registro do enfermeiro com ID 121 seja removido, mas o comando como um todo é inválido.

PEGA ESSA DICA!

Para não errar mais, lembre-se: SELECT usa * para todas as colunas; DELETE não usa *, pois remove linhas inteiras. A sintaxe é sempre DELETE FROM tabela [WHERE condição]. Se a questão trouxer DELETE *, marque errado sem hesitar.

Gabarito: letra E (ERRADO).

Link permanente: /questoes/qa630746