Pular para o conteúdo principal

Questão de Banco de Dados — Sublinguagens SQL (DDL, DML, DQL, DCL e DTL) — FGV 2024

Banco de DadosSublinguagens SQL (DDL, DML, DQL, DCL e DTL)
Código
fg165297
Banca
FGV
Órgão
Pref Niterói
Ano
2024
Cargo
APPGG (SEPLAG Niterói)
Assinale a opção que contém comandos SQL dos subconjuntos das linguagens de definição de dados (DDL), de manipulação de dados (DML) e de controle de dados (DCL), respetivamente.
  1. ADROP, UPDATE e GRANT.
  2. BINSERT, DROP e COMMIT.
  3. CDELETE, SELECT e REVOKE.
  4. DCREATE, UPDATE e SAVEPOINT.
  5. ETRUNCATE, INSERT e ROLLBACK.
Revelar gabarito e comentário

GabaritoA — DROP, UPDATE e GRANT.

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

Sublinguagens SQL: DDL, DML e DCL

Gabarito: letra A — a sequência correta é DROP (DDL), UPDATE (DML) e GRANT (DCL). A questão cobra a classificação clássica dos comandos SQL em subconjuntos: a DDL define estruturas (CREATE, ALTER, DROP, TRUNCATE), a DML manipula os dados das tabelas (INSERT, UPDATE, DELETE, e em algumas divisões o SELECT) e a DCL controla permissões de acesso (GRANT e REVOKE).

A linguagem SQL é dividida em subconjuntos conforme a finalidade de cada comando. Essa divisão é essencial para entender o papel de cada instrução dentro de um banco de dados. A DDL (Data Definition Language) trabalha com os metadados — ou seja, a estrutura dos objetos (tabelas, índices, visões). A DML (Data Manipulation Language) opera sobre os dados em si, inserindo, alterando ou excluindo registros. Já a DCL (Data Control Language) gerencia privilégios de acesso, definindo quem pode ver ou manipular os dados.

A confusão mais comum nesse tema envolve o comando TRUNCATE: embora ele apague os dados de uma tabela, ele é classificado como DDL, pois atua sobre a estrutura (remove todos os registros de uma vez, sem filtro, e não pode ser desfeito com ROLLBACK em muitos SGBDs). O DELETE, por sua vez, é DML, pois remove linhas individualmente e pode ser usado com WHERE. Outra pegadinha recorrente é o SELECT: em algumas divisões ele é tratado como parte da DML, mas há quem o coloque em uma sublinguagem própria, a DQL (Data Query Language).

Para resolver a questão, basta identificar a qual subconjunto pertence cada comando listado nas alternativas. A alternativa A traz DROP (DDL), UPDATE (DML) e GRANT (DCL) — exatamente a ordem pedida. As demais misturam comandos de subconjuntos diferentes ou usam comandos que não pertencem àquele grupo.

Subconjunto

Função

Comandos

DDL

Define a estrutura (metadados)

CREATE, ALTER, DROP, TRUNCATE

DML

Manipula os dados

INSERT, UPDATE, DELETE, SELECT

DCL

Controla permissões de acesso

GRANT, REVOKE

DTL

Controla transações

BEGIN, COMMIT, ROLLBACK, SAVEPOINT

Alternativa A — ✅ Correta ⟵ GABARITO

A sequência DROP, UPDATE e GRANT corresponde, respectivamente, a DDL, DML e DCL. O DROP remove objetos do banco (tabela, índice, visão) — definição de estrutura. O UPDATE altera dados existentes em uma tabela — manipulação de dados. O GRANT concede privilégios de acesso a usuários — controle de acesso. É a única alternativa que respeita a ordem pedida no enunciado.

Alternativa B — ❌ Incorreta

A sequência INSERT, DROP e COMMIT mistura subconjuntos: INSERT é DML, DROP é DDL, mas COMMIT é DTL (Data Transaction Language), não DCL. O COMMIT finaliza uma transação, confirmando as alterações — não tem relação com controle de acesso. A ordem também não segue o padrão DDL, DML, DCL.

Alternativa C — ❌ Incorreta

A sequência DELETE, SELECT e REVOKE: DELETE é DML, SELECT é DQL (ou DML, dependendo da divisão), e REVOKE é DCL. O problema é que SELECT não é DDL, e a ordem não corresponde à pedida. Além disso, REVOKE é DCL, mas o segundo comando (SELECT) não é DML na divisão mais aceita — e mesmo que fosse, a ordem estaria errada.

Alternativa D — ❌ Incorreta

A sequência CREATE, UPDATE e SAVEPOINT: CREATE é DDL, UPDATE é DML, mas SAVEPOINT é DTL (controle de transação), não DCL. O SAVEPOINT define um ponto dentro de uma transação para o qual se pode fazer ROLLBACK — não tem relação com controle de acesso. A ordem também não segue o padrão.

Alternativa E — ❌ Incorreta

A sequência TRUNCATE, INSERT e ROLLBACK: TRUNCATE é DDL, INSERT é DML, mas ROLLBACK é DTL, não DCL. O ROLLBACK desfaz alterações não confirmadas de uma transação — não é controle de acesso. A ordem também não corresponde à pedida.

NÃO CAIA NESSA!

A banca explora a confusão entre TRUNCATE e DELETE, e entre comandos de transação (COMMIT, ROLLBACK, SAVEPOINT) e de controle de acesso (GRANT, REVOKE). Lembre-se: TRUNCATE é DDL, DELETE é DML; e os comandos de transação formam a DTL, não a DCL.

PEGA ESSA DICA!

Para acertar questões assim, decore a tabela de subconjuntos: DDL (CREATE, ALTER, DROP, TRUNCATE), DML (INSERT, UPDATE, DELETE, SELECT), DCL (GRANT, REVOKE), DTL (BEGIN, COMMIT, ROLLBACK, SAVEPOINT). Na dúvida, pergunte-se: o comando mexe na estrutura, nos dados ou nas permissões?

Gabarito: letra A

Link permanente: /questoes/fg165297