Pular para o conteúdo principal

Questão de Banco de Dados — SQL — FCC 2022

Banco de DadosSQL
Código
fc064940
Banca
FCC
Órgão
TRT - 19ª Região (AL)
Ano
2022
Cargo
Técnico Judiciário - Área Apoio Especializado Especialidade: Tecnologia da Informação
No H2 Database, para remover todas as linhas da tabela cliente, que não possui restrições de chave estrangeira, sem possibilidade de rollback, utiliza-se o comando
  1. ADELETE * FROM cliente
  2. BTRUNCATE * FROM cliente
  3. CDELETE ALL FROM cliente
  4. DTRUNCATE TABLE cliente
  5. EDELETE ROWS(*) FROM cliente
Revelar gabarito e comentário

GabaritoD — TRUNCATE TABLE cliente

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”.

H2 Database — Comandos de exclusão de linhas

Gabarito: letra D. O comando TRUNCATE TABLE cliente remove todas as linhas da tabela sem possibilidade de rollback, pois é um comando DDL (Data Definition Language) que tipicamente não participa de transações. Já o DELETE, por ser DML, pode ser revertido com ROLLBACK. A questão exige o conhecimento da sintaxe correta e da característica de irreversibilidade do TRUNCATE.


Alternativa A — ❌ Incorreta

DELETE * FROM cliente – A sintaxe correta do comando DELETE é DELETE FROM cliente (sem *). Mesmo que a sintaxe fosse corrigida, o DELETE é um comando DML que permite rollback em transações, não atendendo ao requisito de "sem possibilidade de rollback".

Alternativa B — ❌ Incorreta

TRUNCATE * FROM cliente – O comando TRUNCATE não utiliza asterisco. A sintaxe padrão é TRUNCATE TABLE nome_da_tabela. Portanto, a forma apresentada é inválida.

Alternativa C — ❌ Incorreta

DELETE ALL FROM cliente – Essa sintaxe não existe no SQL padrão. Para remover todas as linhas com DELETE, usa-se DELETE FROM cliente.

Alternativa D — ✅ Correta ⟵ GABARITO

TRUNCATE TABLE cliente – Sintaxe correta do comando TRUNCATE. Esse comando remove todas as linhas de uma tabela, não pode ser desfeito (a menos que o banco de dados implemente TRUNCATE transacional, o que não é o caso do H2 em modo padrão) e, conforme enunciado, é a opção adequada por não permitir rollback.

Alternativa E — ❌ Incorreta

DELETE ROWS(*) FROM cliente – Sintaxe inválida. Não existe DELETE ROWS no SQL. Mais uma vez, o comando correto para exclusão de linhas com DELETE seria DELETE FROM cliente.


Característica

DELETE

TRUNCATE

Tipo

DML

DDL

Rollback

Sim (dentro de transação)

Não (na maioria dos bancos)

Sintaxe

DELETE FROM tabela [WHERE condição]

TRUNCATE TABLE tabela

Gatilhos

Dispara triggers

Não dispara triggers

Mantém estrutura

Sim

Sim

Espaço liberado

Marca linhas como excluídas

Libera espaço imediatamente

PEGA ESSA DICA!

Lembre-se da frase: "TRUNCATE é uma tesoura, DELETE é uma borracha". A tesoura corta (não volta atrás), a borracha apaga (mas pode ser desfeita com ROLLBACK).

Gabarito: letra D.

Link permanente: /questoes/fc064940