-- 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;
-- 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!
-- 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: 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
DELETE falha se houver FK apontando para a linha — a menos que a FK tenha ON DELETE CASCADE ou SET NULL.
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.
Usando as tabelas da universidade (departamento, professor, disciplina), popule o banco com dados e pratique UPDATE e DELETE.
3 departamentos, 5 professores e 8 disciplinas. Use INSERT múltiplo.
Transfira um professor de departamento. Aumente os créditos de uma disciplina. Delete um departamento e observe o que acontece com as FKs.