Questão de Banco de Dados — Sublinguagens SQL (DDL, DML, DQL, DCL e DTL) — FGV 2024
Banco de Dados›Sublinguagens 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.
ADROP, UPDATE e GRANT.
BINSERT, DROP e COMMIT.
CDELETE, SELECT e REVOKE.
DCREATE, UPDATE e SAVEPOINT.
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?