Banco de Dados I — 2026.2

Aula 7
DML: INSERT, UPDATE & DELETE

👨‍🏫 Prof. Gustavo Pinto 🏛️ UFPA 📅 12 de maio de 2026 🕣 7h30 – 9h10

Agenda de hoje

INSERT INTO

-- Inserção simples
INSERT INTO cliente (cpf, nome, email)
VALUES ('11111111111', 'Ana Silva', 'ana@email.com');

-- Inserção múltipla (várias linhas de uma vez)
INSERT INTO produto (descricao, preco) VALUES
    ('Notebook',   3500.00),
    ('Mouse',      80.00),
    ('Teclado',    150.00);

-- INSERT com SELECT (copiar dados de outra tabela)
INSERT INTO clientes_vip (cpf, nome)
SELECT cpf, nome FROM cliente
WHERE total_compras > 10000;

UPDATE

-- Atualizar um campo específico
UPDATE produto
SET preco = 3200.00
WHERE codigo = 1;

-- Atualizar múltiplas colunas
UPDATE cliente
SET nome = 'Ana Costa', email = 'ana.costa@email.com'
WHERE cpf = '11111111111';

-- Aumento de 10% em todos os produtos
UPDATE produto
SET preco = preco * 1.10;

CUIDADO: UPDATE sem WHERE atualiza todas as linhas da tabela!

DELETE

-- Remover registro específico
DELETE FROM cliente
WHERE cpf = '11111111111';

-- Remover com condição
DELETE FROM pedido
WHERE data < '2025-01-01';

-- SEM WHERE = apaga TUDO!
DELETE FROM produto; -- todas as linhas!

DELETE vs TRUNCATE

DELETE: linha a linha, pode usar WHERE, gera log, pode ser revertido com ROLLBACK

TRUNCATE: remove tudo de uma vez, mais rápido, reseta sequências

Integridade referencial

DELETE falha se houver FK apontando para a linha — a menos que a FK tenha ON DELETE CASCADE ou SET NULL.

Transações: BEGIN, COMMIT, ROLLBACK

Uma transação é um conjunto de operações que devem ser executadas como uma unidade indivisível — ou todas acontecem, ou nenhuma.

BEGIN;  -- inicia a transação

UPDATE conta SET saldo = saldo - 500
WHERE id = 1;  -- débito

UPDATE conta SET saldo = saldo + 500
WHERE id = 2;  -- crédito

COMMIT;  -- confirma as duas operações
-- ou ROLLBACK para desfazer tudo

Se qualquer operação falhar, use ROLLBACK para desfazer todas.

Exercício

Populando o banco no DB Fiddle

Usando as tabelas da universidade (departamento, professor, disciplina), popule o banco com dados e pratique UPDATE e DELETE.

① Insira dados

3 departamentos, 5 professores e 8 disciplinas. Use INSERT múltiplo.

② Atualize e delete

Transfira um professor de departamento. Aumente os créditos de uma disciplina. Delete um departamento e observe o que acontece com as FKs.

Próxima Aula — 14/05 (Qui)

Laboratório
Criação Completa de um Banco