Questão de Banco de Dados — Sublinguagens SQL (DDL, DML, DQL, DCL e DTL) — CESPE / CEBRASPE 2024
- Código
- ce403676
- Banca
- CESPE / CEBRASPE
- Órgão
- TSE
- Ano
- 2024
- Cargo
- TJ
- CCerto
- EErrado
GabaritoE — Errado
Gabarito: Errado. O comando COMMIT não pertence à DML (Data Manipulation Language); ele é um comando de controle de transação, integrante da DTL (Data Transaction Language) ou TCL (Transaction Control Language). A DML é composta por comandos como SELECT, INSERT, UPDATE e DELETE, que manipulam os dados diretamente, enquanto o COMMIT é responsável por confirmar (tornar permanente) uma transação, sendo classificado na sublinguagem de transações.
A linguagem SQL é dividida em sublinguagens, cada uma com uma função específica. A DML (Data Manipulation Language) é a sublinguagem responsável pela manipulação dos dados armazenados nas tabelas, ou seja, pelas operações de consulta, inclusão, alteração e exclusão de registros. Seus comandos principais são SELECT, INSERT, UPDATE e DELETE. Já a DTL (Data Transaction Language), também chamada de TCL (Transaction Control Language), é a sublinguagem que trata das transações, ou seja, do controle de integridade e consistência das operações realizadas no banco. Seus comandos principais são BEGIN TRANSACTION (ou BEGIN), COMMIT, ROLLBACK e SAVEPOINT.
A confusão entre DML e DTL é comum, pois ambas lidam com dados, mas a diferença é clara: a DML manipula os dados em si (inserir, consultar, atualizar, excluir), enquanto a DTL gerencia o ciclo de vida das transações que envolvem essas manipulações. O COMMIT, por exemplo, é usado para confirmar (salvar permanentemente) as alterações feitas por comandos DML dentro de uma transação. Sem o COMMIT, as alterações podem ser desfeitas com o ROLLBACK. Portanto, o COMMIT não é um comando de manipulação de dados, mas sim de controle de transação.
Para fixar, veja a distribuição dos comandos nas sublinguagens:
Sublinguagem | Função | Comandos principais |
|---|---|---|
DDL (Data Definition Language) | Definir e modificar a estrutura dos objetos do banco (tabelas, índices, visões) | CREATE, ALTER, DROP, TRUNCATE |
DML (Data Manipulation Language) | Manipular os dados armazenados nas tabelas | SELECT, INSERT, UPDATE, DELETE |
DCL (Data Control Language) | Controlar o acesso e as permissões dos usuários | GRANT, REVOKE |
DTL (Data Transaction Language) | Gerenciar transações | BEGIN, COMMIT, ROLLBACK, SAVEPOINT |
A banca explora exatamente essa fronteira: o candidato que decora os comandos sem entender a qual sublinguagem pertencem tende a errar. O COMMIT é um comando de transação, não de manipulação de dados. Portanto, a afirmação está incorreta.
A banca troca a sublinguagem do comando COMMIT: ele é da DTL (controle de transação), não da DML (manipulação de dados). O candidato que associa COMMIT a "manipular dados" cai na armadilha, pois o COMMIT apenas confirma as alterações feitas pelos comandos DML, mas não manipula dados diretamente.
Para não errar, associe cada comando à sua função: DML = dados (SELECT, INSERT, UPDATE, DELETE); DTL = transação (BEGIN, COMMIT, ROLLBACK, SAVEPOINT). Na prova, se o comando não for um dos quatro da DML, desconfie imediatamente.
Gabarito: Errado.
Link permanente: /questoes/ce403676