INSERT, UPDATE, DELETE
Os três comandos que mudam dado — e por que UPDATE/DELETE sem WHERE é o erro mais caro do SQL.
INSERT — criar uma linha nova
INSERT INTO usuarios (nome, email)
VALUES ('Carla', 'carla@exemplo.com');UPDATE — alterar linhas existentes
UPDATE produtos
SET preco = 279.90
WHERE id = 1;DELETE — remover linhas
DELETE FROM pedidos
WHERE status = 'cancelado';O erro mais caro: esquecer o WHERE
isso apaga a tabela inteira
DELETE FROM pedidos;
-- sem WHERE, TODA linha da tabela é removida — não só uma
UPDATE produtos SET preco = 0;
-- sem WHERE, TODO produto vira preço 0Sem WHERE, UPDATE/DELETE aplicam a toda a tabela — esse é literalmente o erro de produção mais contado em histórias de desastre de banco de dados. Em produção, times sérios rodam um SELECT com o mesmo WHERE primeiro, pra conferir quantas/quais linhas seriam afetadas, antes de trocar pra DELETE/UPDATE.
RETURNING — ver o que mudou, sem uma segunda consulta
SQL (PostgreSQL)
INSERT INTO usuarios (nome, email)
VALUES ('Carla', 'carla@exemplo.com')
RETURNING *;Exercício
Escreva o comando que marca como "pago" só o pedido de id 42, sem afetar nenhum outro pedido.