Pular para o conteúdo principal

Questão de Banco de Dados — SQL — FGV 2023

Banco de DadosSQL
Código
fg073195
Banca
FGV
Órgão
TJ-SE
Ano
2023
Nível
Médio
Cargo
Técnico Judiciário - Especialidade - Programação de Sistemas
Alison utilizou o seguinte comando SQL para inserir registros em uma tabela.INSERT INTO TB_A (COL_1, COL_2)SELECT COL_X, COL_YFROM TAB_B;Após a execução do comando, Alison percebeu que a tabela origem dos dados estava errada, deveria ser TB_C. Para apagar os registros da tabela TB_A mantendo sua estrutura, Alison deve executar o comando:
  1. ADROP TABLE TB_A;
  2. BALTER TABLE TB_A ADD COL_Y INT, COL_Y INT;
  3. CDELETE FROM TABLE TB_A WHERE COL_X = COL_Y;
  4. DUPDATE TB_A SET 1=1;
  5. ETRUNCATE TABLE TB_A.
Revelar gabarito e comentário

GabaritoE — TRUNCATE TABLE TB_A.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Comandos SQL: DDL e DML — Exclusão de dados mantendo a estrutura

Gabarito: letra E. Para apagar todos os registros de uma tabela sem remover sua estrutura, o comando correto é TRUNCATE TABLE TB_A. Enquanto DROP TABLE elimina a tabela por completo, o TRUNCATE é a instrução de DDL que limpa os dados preservando o esquema.

A questão testa a distinção entre comandos de exclusão no SQL: DROP (DDL) remove a tabela; DELETE (DML) remove registros seletivamente; TRUNCATE (DDL) remove todos os registros de forma rápida, mantendo a estrutura.

Alternativa A — ❌ Incorreta

DROP TABLE TB_A elimina a tabela inteira (dados + estrutura). Alison quer apagar apenas os dados inseridos, por isso essa opção não atende.

Alternativa B — ❌ Incorreta

O comando ALTER TABLE serve para modificar a estrutura da tabela (adicionar, alterar ou excluir colunas). Não exclui registros, apenas adicionaria uma coluna.

Alternativa C — ❌ Incorreta

A sintaxe correta do comando seria DELETE FROM TB_A WHERE condição. Além do erro de sintaxe ("DELETE FROM TABLE"), a condição COL_X = COL_Y não faz sentido, pois essas colunas pertencem a TAB_B e não à TB_A. Mesmo corrigindo a sintaxe, não garantiria exclusão de todos os registros se a condição fosse avaliada como falsa.

Alternativa D — ❌ Incorreta

UPDATE altera valores de registros existentes, não os exclui. SET 1=1 tentaria atualizar todas as linhas, mas não as remove.

Alternativa E — ✅ Correta ⟵ GABARITO

TRUNCATE TABLE TB_A remove todas as linhas da tabela, mantendo sua estrutura (colunas, índices, constraints). É o comando adequado para apagar todos os dados de forma rápida e irreversível, preservando a tabela vazia.

NÃO CAIA NESSA!

Cuidado para não confundir TRUNCATE com DROP TABLE. A banca explora justamente essa troca: o DROP apaga a tabela (estrutura + dados), enquanto o TRUNCATE apaga só os dados. O enunciado é claro ao afirmar "mantendo sua estrutura" — isso elimina DROP de imediato.

Gabarito: letra ETRUNCATE TABLE é a resposta.

Link permanente: /questoes/fg073195