Questão de Banco de Dados — SQL — FGV 2026
- Código
- gp018296
- Banca
- FGV
- Órgão
- TJ-SC
- Ano
- 2026
- Cargo
- Analista de Sistemas
- ATRUNCATE table.
- BDELETE table.
- CUPDATE table.
- DGRANT table.
- EDROP table.
GabaritoE — DROP table.
Gabarito: letra E. Para eliminar definitivamente uma tabela, incluindo sua estrutura, o comando correto é o DROP TABLE, que remove o objeto inteiro do banco de dados — dados e definição. Os demais comandos (TRUNCATE, DELETE, UPDATE, GRANT) não removem a estrutura da tabela, apenas manipulam dados ou permissões.
O SQL (Structured Query Language) é a linguagem padrão para acesso e manipulação de bancos de dados relacionais. Ela se divide em sublinguagens, cada uma com um propósito específico: a DDL (Data Definition Language) trabalha com a definição de objetos (tabelas, índices, views), a DML (Data Manipulation Language) manipula os dados dentro desses objetos, a DCL (Data Control Language) gerencia permissões e a DTL (Data Transaction Language) controla transações. Essa divisão é a chave para entender por que cada comando faz o que faz.
O comando DROP TABLE pertence à DDL e é usado para deletar uma tabela existente, removendo tanto os dados quanto a estrutura (colunas, índices, constraints). É uma operação irreversível — uma vez executada, a tabela deixa de existir no banco. A sintaxe básica é DROP TABLE nome_da_tabela;. No enunciado, Jonas criou uma tabela equivocada e ela não será mais necessária "inclusive em sua estrutura", ou seja, ele precisa eliminar o objeto por completo, não apenas os registros. É exatamente isso que o DROP faz.
Para contrastar, o TRUNCATE TABLE também remove todos os dados de uma tabela, mas preserva a estrutura — a tabela continua existindo, apenas vazia. O DELETE remove registros específicos (com cláusula WHERE) ou todos, mas também mantém a estrutura. O UPDATE altera valores de registros existentes, e o GRANT concede permissões de acesso. Nenhum desses comandos elimina a tabela em si.
A pegadinha clássica desta questão é confundir TRUNCATE com DROP, pois ambos removem dados. A diferença crucial está na estrutura: o TRUNCATE esvazia a tabela, o DROP a elimina. Como o enunciado enfatiza que a tabela não será mais necessária "inclusive em sua estrutura", o comando correto é o DROP.
Guarde essa distinção: DROP = remove o objeto (tabela) inteiro; TRUNCATE = remove apenas os dados, mantendo a estrutura; DELETE = remove registros específicos. É nessa fronteira que as alternativas se dividem.
O TRUNCATE TABLE remove todos os dados da tabela, mas preserva a estrutura (colunas, índices, constraints). A tabela continua existindo no banco, apenas vazia. Como o enunciado pede para eliminar a tabela "inclusive em sua estrutura", o TRUNCATE não atende ao requisito. Ele é útil quando se quer limpar uma tabela rapidamente, sem apagar sua definição.
O DELETE FROM table é um comando da DML usado para remover registros específicos (com cláusula WHERE) ou todos os registros de uma tabela. Ele não remove a estrutura da tabela — a tabela continua existindo, apenas com os dados excluídos. Além disso, o DELETE pode ser transacional (pode ser desfeito com ROLLBACK em muitos SGBDs), o que o torna inadequado para eliminar definitivamente a estrutura.
O UPDATE table é um comando da DML usado para modificar valores de registros existentes em uma tabela. Ele não remove dados nem estrutura — apenas altera o conteúdo das colunas. Não tem nenhuma relação com a eliminação de uma tabela.
O GRANT é um comando da DCL (Data Control Language) usado para conceder permissões de acesso a usuários ou roles no banco de dados (ex.: GRANT SELECT ON tabela TO usuario). Ele não manipula dados nem estrutura — apenas controla privilégios de segurança. Não serve para eliminar tabelas.
O DROP TABLE é o comando da DDL usado para deletar uma tabela existente, removendo tanto os dados quanto a estrutura (colunas, índices, constraints). É uma operação irreversível e definitiva. A sintaxe é DROP TABLE nome_da_tabela;. Como Jonas precisa eliminar a tabela "inclusive em sua estrutura", o DROP é exatamente o comando adequado.
Para diferenciar na prova, pergunte-se: "o que precisa ser removido?" Se for a tabela inteira (estrutura + dados), use DROP. Se for apenas os dados (mantendo a estrutura), use TRUNCATE. Se for registros específicos, use DELETE. Essa tríade cobre a maioria das questões sobre remoção em SQL.
Gabarito: letra E
Link permanente: /questoes/gp018296