Questão de Banco de Dados — SQL — Avança SP 2023
- Código
- qq830789
- Banca
- Avança SP
- Órgão
- DAE-Santa Bárbara d’Oeste
- Ano
- 2023
- Nível
- Médio
- Cargo
- Técnico em Tecnologia da Informação
- ADROP TABLE
- BDROP ENTRY
- CDELETE TABLE
- DDELETE ENTRY
- ETRUNCATE TABLE
GabaritoA — DROP TABLE
Gabarito: letra A. O comando correto para apagar uma tabela no MySQL é o DROP TABLE, que remove tanto os dados quanto a estrutura da tabela do banco de dados. Esse comando pertence à sublinguagem DDL (Data Definition Language), responsável pela definição e manipulação de objetos do banco, como tabelas, índices e visões.
O DROP TABLE é um comando da DDL, que lida com a estrutura dos objetos do banco de dados. Quando executado, ele exclui permanentemente a tabela e todos os seus dados, além de sua definição (esquema). Diferente do DELETE, que remove apenas registros (linhas) de uma tabela, o DROP TABLE remove a tabela inteira. Já o TRUNCATE TABLE remove todos os dados de uma tabela, mas mantém a estrutura da tabela para uso futuro.
Na prática, se você tiver uma tabela chamada clientes e executar DROP TABLE clientes;, a tabela desaparece completamente do banco de dados. Não é possível recuperá-la a menos que você tenha um backup. Por outro lado, TRUNCATE TABLE clientes; esvazia a tabela, mas a estrutura permanece, permitindo inserir novos dados posteriormente.
A distinção fundamental é entre remover a estrutura (DDL) e remover dados (DML). O DROP e o TRUNCATE são comandos DDL, enquanto DELETE é DML. O TRUNCATE é mais rápido que o DELETE sem condição, pois não registra cada linha excluída no log de transações, mas não pode ser usado com uma cláusula WHERE.
A pegadinha desta questão está em confundir comandos de sublinguagens diferentes. As alternativas B, C e D usam palavras como ENTRY e DELETE, que não são comandos SQL válidos para apagar tabelas. A alternativa E (TRUNCATE TABLE) é um comando válido, mas não apaga a tabela — apenas remove seus dados, mantendo a estrutura.
O comando DROP TABLE é a sintaxe correta para apagar uma tabela no MySQL. Ele remove a tabela inteira, incluindo sua estrutura e todos os dados armazenados. Este comando faz parte da DDL, que gerencia a definição de objetos do banco de dados.
DROP ENTRY não é um comando SQL válido. O comando DROP é usado com objetos como TABLE, DATABASE, INDEX, VIEW, entre outros, mas não com ENTRY. Não existe essa sintaxe no MySQL.
DELETE TABLE não é um comando SQL válido. O comando DELETE é usado para remover registros de uma tabela, mas a sintaxe correta é DELETE FROM nome_da_tabela, não DELETE TABLE. Além disso, DELETE é um comando DML, que manipula dados, não estrutura.
DELETE ENTRY não é um comando SQL válido. O comando DELETE é usado com a cláusula FROM para especificar a tabela da qual os registros serão removidos. ENTRY não é um objeto reconhecido pelo SQL para essa operação.
TRUNCATE TABLE é um comando válido, mas não apaga a tabela. Ele remove todos os dados da tabela, mantendo a estrutura intacta. Para apagar a tabela completamente, o comando correto é DROP TABLE. O TRUNCATE é útil quando se deseja esvaziar uma tabela rapidamente, sem excluí-la.
A banca mistura comandos de sublinguagens diferentes (DDL x DML) e troca o objeto do comando. O DELETE é DML e remove dados, não tabelas. O TRUNCATE é DDL, mas preserva a estrutura. O DROP é o único que remove a tabela inteira. Fique atento à diferença entre apagar dados e apagar a estrutura.
Para memorizar, lembre-se: DROP = derruba tudo (estrutura + dados); TRUNCATE = esvazia (só dados); DELETE = remove registros específicos (com WHERE). Na prova, identifique se a pergunta pede para apagar a tabela ou apenas os dados.
Gabarito: letra A
Link permanente: /questoes/qq830789