Pular para o conteúdo principal

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

Banco de DadosConsultas e Comandos em SQL
Código
qa699068
Banca
Quadrix
Órgão
CAU MA
Ano
2025
Cargo
Ass TI ( )
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 os itens seguintes.   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 da tabela equipes cujo valor da coluna id seja igual a 10, desde que a operação seja confirmada (COMMIT) e não haja restrições de integridade que impeçam a exclusão. O DELETE é um comando da sublinguagem DML (Data Manipulation Language), responsável por manipular os dados armazenados nas tabelas.

O comando DELETE é um dos quatro comandos básicos da DML, ao lado de INSERT, UPDATE e SELECT. Sua função é remover registros (linhas) de uma tabela. A sintaxe básica é DELETE FROM nome_da_tabela WHERE condição;. A cláusula WHERE é opcional, mas extremamente importante: sem ela, todas as linhas da tabela seriam removidas. No comando apresentado, a condição WHERE id = 10 restringe a exclusão apenas à linha cujo id seja igual a 10.

É importante destacar que o DELETE é um comando permanente no sentido de que, uma vez executado e confirmado (COMMIT), os dados são removidos definitivamente. No entanto, em bancos de dados que suportam transações, é possível reverter a operação com ROLLBACK antes da confirmação. Além disso, a exclusão pode ser bloqueada por restrições de integridade referencial (chaves estrangeiras), caso a linha seja referenciada por outras tabelas. Nesse caso, o banco pode recusar a exclusão ou aplicar uma ação como ON DELETE CASCADE ou ON DELETE SET NULL, dependendo da definição da chave estrangeira.

A pegadinha desta questão é justamente a palavra "permanentemente". O candidato pode pensar que, por ser um comando DML, o DELETE não é permanente, confundindo com o TRUNCATE (que é DDL e não pode ser revertido). Mas a afirmação está correta: o DELETE remove os dados de forma definitiva após o COMMIT. A distinção entre DELETE e TRUNCATE é um clássico em provas:

Critério

DELETE

TRUNCATE

Sublinguagem

DML

DDL

Efeito

Remove linhas individualmente

Remove todas as linhas de uma vez

Cláusula WHERE

Pode filtrar linhas

Não permite filtro

Transação

Pode ser revertido com ROLLBACK

Não pode ser revertido (em muitos SGBDs)

Gatilhos (triggers)

Dispara triggers

Não dispara triggers

Velocidade

Mais lento (registro a registro)

Mais rápido (desaloca páginas)

Guarde essa distinção: é exatamente nela que a banca costuma armar a pegadinha. Nesta questão, porém, a afirmação é verdadeira, pois o DELETE com WHERE remove permanentemente o registro especificado.

Item — ✅ Correto

O comando DELETE FROM equipes WHERE id = 10; remove a linha da tabela equipes onde o valor da coluna id é igual a 10. A sintaxe está correta: DELETE FROM seguido do nome da tabela e da cláusula WHERE com a condição. A remoção é permanente após a confirmação da transação (COMMIT), e não há qualquer erro na afirmação. O comando pertence à DML, que é a sublinguagem responsável pela manipulação de dados, e sua execução efetivamente apaga o registro do banco de dados.

NÃO CAIA NESSA!

A banca usa a palavra "permanentemente" para tentar confundir o candidato, que pode associar o DELETE a algo reversível (por ser DML) ou confundir com o TRUNCATE. Mas o DELETE é sim permanente após o COMMIT. A pegadinha clássica é trocar DELETE por TRUNCATE ou afirmar que o DELETE não remove dados de forma definitiva. Aqui, a afirmação está correta.

Gabarito: CERTO (letra C).

Link permanente: /questoes/qa699068