Questão de Banco de Dados — Consultas e Comandos em SQL — CESPE / CEBRASPE 2024
- Código
- ce403599
- Banca
- CESPE / CEBRASPE
- Órgão
- CNPq
- Ano
- 2024
- Cargo
- Ana CT I ( )

- CCerto
- EErrado

GabaritoE — Errado
Gabarito: Errado. As expressões DELETE FROM dados e DROP TABLE dados não geram resultados equivalentes: a primeira remove apenas as linhas (tuplas) da tabela, preservando a estrutura da tabela; a segunda remove a tabela inteira, incluindo sua estrutura e definição. São comandos de sublinguagens diferentes — DELETE é DML (Data Manipulation Language) e DROP é DDL (Data Definition Language) — e produzem efeitos distintos no banco de dados.
O comando DELETE FROM dados é um comando de manipulação de dados (DML). Ele apaga as linhas da tabela, mas a tabela em si continua existindo no banco, com suas colunas, tipos, restrições e índices. Após um DELETE, você ainda pode consultar a tabela (ela retornará vazia) e inserir novos dados. Já o comando DROP TABLE dados é um comando de definição de dados (DDL). Ele remove a tabela por completo do banco de dados, incluindo sua estrutura. Após um DROP, a tabela não existe mais; qualquer tentativa de consultá-la ou inserir dados resultará em erro, a menos que a tabela seja recriada com CREATE TABLE.
A diferença fundamental está no escopo da operação: DELETE age sobre os dados (tuplas), enquanto DROP age sobre o objeto (a tabela). Essa distinção é clássica em provas de banco de dados e costuma ser explorada pelas bancas para testar se o candidato domina a classificação dos comandos SQL nas sublinguagens.
Para fixar, veja a comparação:
Critério | DELETE FROM dados | DROP TABLE dados |
|---|---|---|
Sublinguagem | DML (Manipulação) | DDL (Definição) |
O que remove | Linhas (tuplas) | A tabela inteira (estrutura + dados) |
Estrutura da tabela | Preservada | Removida |
Pode ser desfeito com ROLLBACK? | Sim, se dentro de transação | Depende do SGBD (em geral, não) |
Tabela continua existindo? | Sim | Não |
A banca tenta confundir DELETE com DROP (e também com TRUNCATE). O candidato que decora apenas "DELETE apaga dados" e "DROP apaga tabela" pode achar que são equivalentes, mas a diferença é estrutural: DELETE é DML e preserva a tabela; DROP é DDL e elimina a tabela. Lembre-se: TRUNCATE também apaga todas as linhas, mas é DDL e não pode ser desfeito com ROLLBACK em muitos SGBDs — outra pegadinha comum.
A afirmação de que as expressões geram resultados equivalentes é falsa. DELETE FROM dados remove apenas as linhas da tabela, mantendo a estrutura; DROP TABLE dados remove a tabela inteira. São comandos de sublinguagens diferentes (DML vs. DDL) e com efeitos distintos. Portanto, o item está errado.
Gabarito: Errado
Link permanente: /questoes/ce403599