FMFelipe MiillerNotes on software & systems
HomeBlogAbout
GitHub

Keep building.

Felipe Miiller · © 2026

MailGitHubGitHubLinkedinGitHub
View source on GitHub
Back to blog

Linguagem SQL - 2 Comandos DML

17/12/2024
4 min de leitura
919 palavras
DataBaseSQL
  • Linguagem SQL - Comandos DML e DQL
  • Introdução
  • Resumo dos Comandos DML
  • Inserção de Dados
  • Atualização de Dados
  • Eliminação de Registros
  • Controle de Transações: `COMMIT` e `ROLLBACK`
  • Exemplo Básico com `COMMIT` e `ROLLBACK`:
  • Exemplo de Transação Complexa com Múltiplas Tabelas:
  • Cenários de Uso:
  • Exemplo com COMMIT:
  • Exemplo com ROLLBACK:

Linguagem SQL - Comandos DML e DQL

Introdução

Os comandos DML (Manipulação de Dados) e DQL (Consulta de Dados), fundamentais para manipular e consultar os dados armazenados nas tabelas.

  • Entender e implementar comandos DML como INSERT, UPDATE e DELETE;
  • Consultar campos e registros de uma tabela utilizando SELECT e a cláusula WHERE;
  • Aprender sobre operadores aritméticos, de comparação e lógicos;
  • Compreender e utilizar os comandos COMMIT e ROLLBACK para controle de transações.

6ed1518d-99f3-40a2-83c7-00edbf174026.png


Resumo dos Comandos DML

Os comandos da categoria DML (Data Manipulation Language) permitem a manipulação direta dos dados em uma ou mais tabelas. Incluem:

  1. INSERT: Adiciona novos registros;
  2. UPDATE: Atualiza registros existentes;
  3. DELETE: Remove registros;
  4. COMMIT: Confirma as alterações realizadas;
  5. ROLLBACK: Desfaz alterações realizadas.

Inserção de Dados

Sintaxe:

INSERT INTO tabela [(coluna1, coluna2, ...)] VALUES (valor1, valor2, ...);

Exemplo:

INSERT INTO dept (DEPTNO, DNAME, LOC) VALUES (80, 'COMERCIAL', 'SP');
INSERT INTO dept VALUES (90, 'FINANCEIRO', 'RJ');
INSERT INTO dept (DEPTNO, DNAME) VALUES (55, 'RH');

No terceiro exemplo, a coluna LOC receberá automaticamente o valor NULL.

Quando usar variações do INSERT:

  • INSERT INTO tabela (colunas...) VALUES ...: Utilize quando desejar inserir valores apenas em colunas específicas da tabela.
  • INSERT INTO tabela VALUES ...: Ideal quando deseja inserir valores em todas as colunas da tabela na mesma ordem em que foram criadas.
  • INSERT INTO tabela SELECT ...: Apropriado para inserir registros a partir de resultados de uma consulta SQL, transferindo ou duplicando dados entre tabelas.

Cada variação é adequada conforme a necessidade de controle sobre os dados ou sua origem no processo de inserção.

Sintaxe:

INSERT INTO tabela [(coluna1, coluna2, ...)] VALUES (valor1, valor2, ...);

Exemplo:

INSERT INTO dept (DEPTNO, DNAME, LOC) VALUES (80, 'COMERCIAL', 'SP');
INSERT INTO dept VALUES (90, 'FINANCEIRO', 'RJ');
INSERT INTO dept (DEPTNO, DNAME) VALUES (55, 'RH');

No terceiro exemplo, a coluna LOC receberá automaticamente o valor NULL.

Atualização de Dados

Sintaxe:

UPDATE tabela SET coluna1 = valor1, coluna2 = valor2 WHERE condição;

Exemplo:

UPDATE emp SET deptno = 30 WHERE empno = 7900;

Se a cláusula WHERE for omitida, todas as linhas serão afetadas.

Eliminação de Registros

Sintaxe:

DELETE FROM tabela WHERE condição;

Exemplo:

DELETE FROM dept WHERE dname = 'FINANCEIRO';

Assim como no comando UPDATE, a omissão da cláusula WHERE remove todos os registros da tabela.


Controle de Transações: COMMIT e ROLLBACK

Transações agrupam um conjunto de operações DML, garantindo a consistência e atomicidade das modificações realizadas no banco de dados. O uso adequado de COMMIT e ROLLBACK é essencial para assegurar que as alterações sejam aplicadas corretamente ou desfeitas em caso de erro.

Exemplo Básico com COMMIT e ROLLBACK:

UPDATE emp SET deptno = 10 WHERE empno = 7900;
COMMIT;

DELETE FROM employees WHERE job = 'SALESMAN';
ROLLBACK;
  • O comando COMMIT confirma todas as alterações feitas desde o último COMMIT ou ROLLBACK.
  • O comando ROLLBACK desfaz todas as alterações feitas desde o último COMMIT.

Exemplo de Transação Complexa com Múltiplas Tabelas:

Imagine que precisamos transferir um funcionário de um departamento para outro, atualizando registros em duas tabelas diferentes: emp (funcionários) e dept (departamentos). Caso ocorra um erro em qualquer etapa, toda a transação deve ser desfeita.

BEGIN;

-- Reduz o número de funcionários no departamento atual
UPDATE dept SET num_funcionarios = num_funcionarios - 1
WHERE deptno = (SELECT deptno FROM emp WHERE empno = 7900);

-- Altera o departamento do funcionário
UPDATE emp SET deptno = 20 WHERE empno = 7900;

-- Aumenta o número de funcionários no novo departamento
UPDATE dept SET num_funcionarios = num_funcionarios + 1
WHERE deptno = 20;

-- Commit se tudo der certo
COMMIT;

-- Rollback em caso de erro
-- ROLLBACK;

Explicação:

  1. O comando BEGIN inicia a transação.
  2. Os registros são atualizados em duas tabelas para refletir a transferência.
  3. O COMMIT confirma todas as alterações se nenhuma falha ocorrer.
  4. Se houver erro em qualquer etapa, o ROLLBACK pode ser chamado manualmente ou automaticamente para reverter as mudanças.

Cenários de Uso:

  • COMMIT: Quando as alterações devem ser persistidas permanentemente no banco de dados.
  • ROLLBACK: Em situações de falha, erro de execução ou verificação de dados inválidos.

Transações complexas como essa garantem a consistência dos dados ao trabalhar com múltiplas tabelas, essencial em sistemas de produção.

Transações agrupam um conjunto de operações DML, garantindo a consistência e atomicidade das modificações.

Exemplo com COMMIT:

UPDATE emp SET deptno = 10 WHERE empno = 7900;
COMMIT;

O comando COMMIT confirma a alteração no banco de dados.

Exemplo com ROLLBACK:

DELETE FROM employees;
ROLLBACK;

O comando ROLLBACK desfaz a exclusão, restaurando os dados.