Questão de Banco de Dados — SQL — Quadrix 2025
- Código
- qg594438
- Banca
- Quadrix
- Órgão
- CAU-MA
- Ano
- 2025
- Nível
- Médio
- Cargo
- Assistente de Tecnologia da Informação
- CCerto
- EErrado
GabaritoC — Certo
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.
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.
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