Pular para o conteúdo principal

Questão de Banco de Dados — SQL — Quadrix 2025

Banco de DadosSQL
Código
qg594438
Banca
Quadrix
Órgão
CAU-MA
Ano
2025
Nível
Médio
Cargo
Assistente de Tecnologia da Informação
A empresa ArqUrban de São Luís‑MA, especializada em projetos de arquitetura e urbanismo, mantém um banco de dados para armazenar informações sobre projetos, clientes e equipes de trabalho. Foi solicitado a um técnico de TI que analisasse algumas consultas SQL básicas feitas por um estagiário e verificar se estão corretas para obter as informações desejadas. 
Com base nessa situação hipotética, julgue o item seguinte.O comando DELETE FROM equipes WHERE id = 10; remove permanentemente, do banco de dados, a equipe cujo ID é igual a 10.
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoC — Certo

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

Gabarito: CERTO (letra C). O comando DELETE FROM equipes WHERE id = 10; remove permanentemente a linha (registro) da tabela equipes cujo valor da coluna id seja igual a 10, desde que a transação seja confirmada (COMMIT). O DELETE é um comando DML (Data Manipulation Language) que apaga dados de uma tabela, mantendo a estrutura da tabela intacta — diferentemente do DROP, que remove a própria tabela.

O comando DELETE é um dos comandos do subconjunto DML da linguagem SQL, responsável pela manipulação de dados. 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 removidos. No comando em questão, a condição WHERE id = 10 restringe a exclusão apenas à linha cujo id seja igual a 10.

É importante destacar que o DELETE remove linhas (tuplas), não a tabela em si. Para remover a estrutura da tabela, utiliza-se o comando DROP TABLE. Essa distinção é clássica em provas e aparece com frequência. Além disso, o DELETE é um comando transacional: em bancos que suportam transações (como PostgreSQL, MySQL com InnoDB, Oracle), a exclusão só se torna permanente após o COMMIT. Sem o COMMIT, a alteração pode ser revertida com ROLLBACK. No contexto da questão, a afirmação de que o comando "remove permanentemente" está correta, pois assume-se que a transação é confirmada (ou que o banco está em modo de autocommit, que é o padrão em muitos SGBDs).

Vale lembrar também que, se houver restrições de chave estrangeira com ON DELETE CASCADE, a exclusão pode propagar para outras tabelas, mas isso não altera o fato de que o comando remove o registro da tabela equipes.

A pegadinha que a banca poderia explorar é confundir DELETE com DROP ou TRUNCATE. O TRUNCATE remove todos os registros de uma tabela de forma rápida e não transacional (em alguns bancos), mas também mantém a estrutura. O DROP remove a tabela inteira. Nesta questão, o comando é claramente um DELETE com condição, então a afirmação é verdadeira.

Alternativa C — ✅ Correta ⟵ GABARITO

O comando DELETE FROM equipes WHERE id = 10; remove a linha da tabela equipes cujo id é igual a 10. A sintaxe está correta: DELETE FROM seguido do nome da tabela e da cláusula WHERE com a condição. O DELETE é um comando DML que apaga dados, não a estrutura da tabela. A remoção é permanente após o COMMIT (ou em modo autocommit). Portanto, a afirmação está correta.

Alternativa E — ❌ Incorreta

A alternativa E afirma que o comando está errado, mas não há erro na sintaxe nem no efeito descrito. O DELETE remove permanentemente o registro especificado, desde que a transação seja confirmada. A banca poderia tentar confundir com DROP, mas o comando apresentado é um DELETE válido. Portanto, a alternativa E está incorreta.

Gabarito: letra C

Link permanente: /questoes/qg594438