Questão de Banco de Dados — Consultas e Comandos em SQL — Quadrix 2025
- Código
- qa699068
- Banca
- Quadrix
- Órgão
- CAU MA
- Ano
- 2025
- Cargo
- Ass TI ( )
- CCerto
- EErrado
GabaritoC — Certo
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.
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.
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