Pular para o conteúdo principal

Questão de Banco de Dados — Consultas e Comandos em SQL — CESPE / CEBRASPE 2025

Banco de DadosConsultas e Comandos em SQL
Código
ce417288
Banca
CESPE / CEBRASPE
Órgão
EMBRAPA
Ano
2025
Cargo
Ana ( )
Julgue o item a seguir, relativo a sistemas de banco de dados.   No SQL, a instrução DELETE pode ser usada para remover colunas inteiras de uma tabela e manter o restante dos dados sem alteração.
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoE — Errado

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

SQL – Comandos DML e DDL: DELETE × ALTER/DROP

Gabarito: Errado. A instrução DELETE é um comando da DML (Data Manipulation Language) que remove linhas (tuplas) de uma tabela, e não colunas. Para remover colunas inteiras, o comando correto é o ALTER TABLE ... DROP COLUMN, que pertence à DDL (Data Definition Language). A afirmação do enunciado confunde a finalidade do DELETE com a do ALTER.

O SQL é dividido em sublinguagens, cada uma com responsabilidades distintas. A DDL (Data Definition Language) lida com a estrutura dos objetos do banco (tabelas, colunas, índices, visões) — seus comandos principais são CREATE, ALTER e DROP. Já a DML (Data Manipulation Language) lida com os dados armazenados nessas estruturas — seus comandos são INSERT, UPDATE e DELETE. Essa separação é fundamental: enquanto a DDL altera o esquema (a definição da tabela), a DML altera o conteúdo (as linhas).

O comando DELETE tem a seguinte sintaxe básica:

DELETE FROM nome_da_tabela WHERE condição;

Ele remove linhas inteiras que satisfazem a condição do WHERE. Se a condição for omitida, todas as linhas da tabela são removidas, mas a estrutura da tabela (colunas, tipos, restrições) permanece intacta. Para remover uma coluna, o comando é:

ALTER TABLE nome_da_tabela DROP COLUMN nome_da_coluna;

Esse comando altera a definição da tabela, eliminando permanentemente a coluna e todos os seus dados. A confusão entre DELETE e ALTER é clássica em provas: o candidato que não domina a distinção entre DML e DDL tende a aceitar a afirmação como correta.

Outro comando que costuma gerar confusão é o TRUNCATE, que também remove todas as linhas de uma tabela, mas de forma mais rápida que o DELETE (por não registrar cada exclusão individualmente) e sem permitir filtro por WHERE. O TRUNCATE é classificado como DDL em muitos SGBDs, justamente por reiniciar a estrutura (como contadores de auto-incremento).

A pegadinha da questão está em associar DELETE à remoção de colunas, quando na verdade ele opera sobre linhas. Para fixar:

Comando

Sublinguagem

O que remove

Estrutura da tabela

DELETE

DML

Linhas (tuplas)

Mantida

TRUNCATE

DDL (na maioria dos SGBDs)

Todas as linhas

Mantida (mas reinicia contadores)

DROP TABLE

DDL

Tabela inteira (estrutura + dados)

Removida

ALTER TABLE ... DROP COLUMN

DDL

Coluna específica

Alterada (coluna removida)

Guarde essa fronteira: DML mexe nos dados, DDL mexe na estrutura. É exatamente nela que a afirmação do enunciado falha.

SQL: sublinguagens
  • 1DDL (estrutura)
    • CREATE
    • ALTER TABLE ... DROP COLUMN
    • DROP TABLE
    • TRUNCATE
  • 2DML (dados)
    • INSERT
    • UPDATE
    • DELETE (remove linhas)
LEVEL · soulevel.com.br

Item — ❌ Errado

A afirmação diz que o DELETE pode remover colunas inteiras de uma tabela. Isso é incorreto: o DELETE é um comando DML que remove linhas, não colunas. Para remover uma coluna, o comando correto é ALTER TABLE ... DROP COLUMN, da DDL. O DELETE apenas apaga registros (tuplas) que atendem à condição do WHERE, mantendo a estrutura da tabela inalterada. Se a intenção é "apagar" apenas os valores de uma coluna (sem remover a coluna), o comando adequado é o UPDATE, atribuindo NULL aos campos desejados.

Gabarito: Errado.

Link permanente: /questoes/ce417288