
CRUD é um modelo usado para representar quatro operações básicas do ciclo de vida dos dados: criar, consultar, atualizar e excluir. Ele não é um comando nem uma linguagem; em bancos relacionais, essas ações costumam ser implementadas com INSERT, SELECT, UPDATE e DELETE.
Antes do CRUD: criando a tabela
Usaremos uma tabela simples de alunos em PostgreSQL. O identificador é gerado automaticamente e a coluna de e-mail não permite valores repetidos.
CREATE TABLE alunos (
id INTEGER GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
nome VARCHAR(100) NOT NULL,
email VARCHAR(150) UNIQUE NOT NULL,
turma VARCHAR(30),
ativo BOOLEAN DEFAULT TRUE
);
1. Create: cadastrar um registro
O comando INSERT inclui uma nova linha. Informamos as colunas e, em seguida, os valores na mesma ordem.
INSERT INTO alunos (nome, email, turma)
VALUES ('Marina Alves', 'marina@email.com', '1ª Série A');
Também é possível cadastrar mais de um registro em um único comando:
INSERT INTO alunos (nome, email, turma)
VALUES
('João Lima', 'joao@email.com', '1ª Série B'),
('Ana Souza', 'ana@email.com', '1ª Série A');
2. Read: consultar registros
SELECT lê dados sem alterá-los. O asterisco solicita todas as colunas, mas em aplicações reais é melhor selecionar apenas as necessárias.
SELECT id, nome, turma FROM alunos WHERE ativo = TRUE ORDER BY nome;
O WHERE filtra, e o ORDER BY organiza. Para limitar resultados, podemos acrescentar LIMIT 10.
3. Update: atualizar um registro
UPDATE altera dados existentes. O WHERE define quais registros serão modificados.
UPDATE alunos SET turma = '1ª Série B' WHERE id = 1;
Sem a condição, todos os alunos receberiam a mesma turma. Antes de uma alteração importante, execute um SELECT com a mesma condição para confirmar o alvo.
4. Delete: excluir um registro
DELETE FROM alunos WHERE id = 1;
A exclusão física remove a linha. Alguns sistemas preferem a exclusão lógica: mantêm o registro e alteram um campo como ativo. Isso preserva histórico quando a regra de negócio permite.
UPDATE alunos SET ativo = FALSE WHERE id = 1;
Cuidados que evitam problemas
- Use WHERE em UPDATE e DELETE quando a intenção não for atingir toda a tabela.
- Valide dados também no servidor, não apenas na tela.
- Utilize parâmetros nas aplicações para reduzir risco de injeção SQL.
- Controle permissões: nem todo usuário deve excluir ou alterar registros.
- Mantenha backup e histórico para dados importantes.
- Use transações quando várias operações precisam acontecer juntas.
CRUD na interface de um sistema
| Ação do usuário | Operação | SQL comum |
|---|---|---|
| Cadastrar | Create | INSERT |
| Visualizar ou buscar | Read | SELECT |
| Editar | Update | UPDATE |
| Remover | Delete | DELETE |
Atividade prática
Crie uma tabela livros com id, título, autor, ano e disponível. Cadastre três livros, consulte apenas os disponíveis em ordem de título, atualize o ano de um registro e marque outro como indisponível. Por último, explique quando seria melhor excluir fisicamente ou apenas alterar o status.
Perguntas frequentes
CRUD é uma linguagem?
Não. É uma forma de agrupar operações. Elas podem ser implementadas com SQL, APIs, interfaces e diferentes linguagens.
ORDER BY, LIMIT e LIKE fazem parte do CRUD?
São recursos usados principalmente na leitura, isto é, no SELECT. Eles organizam, limitam e filtram resultados.
DELETE sempre apaga para sempre?
No banco, a linha é removida; ainda pode existir em backups ou históricos. Sistemas também podem usar exclusão lógica em vez de DELETE.
Referências bibliográficas
Obras reconhecidas que fundamentam e aprofundam os conceitos apresentados neste artigo.
- ELMASRI, Ramez; NAVATHE, Shamkant B. Fundamentals of Database Systems. 7. ed. Pearson, 2016.
- BEAULIEU, Alan. Learning SQL. 3. ed. O’Reilly Media, 2020.