A linguagem de manipulação de dados (DML)
Enquanto SELECT lê, estas três instruções modificam o conteúdo das
tabelas.
INSERT — adicionar linhas
INSERT INTO clientes (id, nome, email, ativo)
VALUES (4, 'Sara Vega', 'sara@example.com', 1);
Você indica a tabela, as colunas e os valores. As colunas com DEFAULT ou que
admitem NULL podem ser omitidas.
UPDATE — alterar linhas existentes
UPDATE pedidos SET status = 'pago' WHERE id = 2;
⚠️ Sem
WHERE,UPDATEmodifica TODAS as linhas. OWHEREdecide quais linhas serão alteradas.
DELETE — apagar linhas
DELETE FROM pedidos WHERE status = 'cancelado';
⚠️ Igual ao
UPDATE: semWHERE,DELETEesvazia toda a tabela.
Restrições (constraints)
As restrições são declaradas no CREATE TABLE e fazem com que o banco de
dados rejeite dados inválidos, protegendo a integridade:
| Restrição | O que garante |
|---|---|
NOT NULL |
a coluna não pode ficar vazia |
UNIQUE |
o valor não se repete (p. ex. um email) |
CHECK (cond) |
o valor cumpre uma condição (total >= 0) |
DEFAULT v |
valor padrão se nenhum outro for indicado |
FOREIGN KEY |
o valor deve existir na tabela referenciada |
CREATE TABLE pedidos (
id INTEGER PRIMARY KEY,
cliente_id INTEGER NOT NULL,
total REAL NOT NULL CHECK (total >= 0),
status TEXT NOT NULL DEFAULT 'pendente',
FOREIGN KEY (cliente_id) REFERENCES clientes(id)
);
Projetar com restrições significa que muitos erros se tornam impossíveis: não entra um pedido com total negativo, nem dois clientes com o mesmo email, nem um pedido órfão sem cliente.