Painel de dados com gráficos e indicadores
O CRUD representa o ciclo básico de vida de um registro em um sistema. Crédito da foto.
Compartilhe este conteúdo

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.

CRUD significa: Create, Read, Update e Delete. Em SQL, essas ações normalmente correspondem a 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.

Caso completo: cadastro de tarefas com regras

CRUD não é apenas associar quatro verbos a quatro comandos. Cada operação precisa respeitar regras. Em um cadastro de tarefas, uma tarefa pode exigir título, permitir descrição vazia, começar com situação “pendente” e registrar a data de criação. Atualizar somente a situação não deveria apagar o título. Excluir pode significar remoção definitiva ou arquivamento, conforme a necessidade de histórico.

CREATE TABLE tarefas (
  id INTEGER GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
  titulo VARCHAR(120) NOT NULL,
  descricao TEXT,
  situacao VARCHAR(20) NOT NULL DEFAULT 'pendente',
  criada_em TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  CONSTRAINT situacao_valida
    CHECK (situacao IN ('pendente', 'fazendo', 'concluida'))
);

A restrição impede situações inventadas. Antes de atualizar, consulte a linha pelo identificador; depois da atualização, confira o resultado. Em aplicações reais, use transação quando várias mudanças precisam acontecer juntas e parâmetros fornecidos pelo driver, em vez de concatenar texto recebido do usuário.

Plano de testes do CRUD

  1. Crie uma tarefa válida e confirme o valor padrão.
  2. Tente criar sem título e observe a rejeição.
  3. Consulte pelo identificador e por situação.
  4. Atualize apenas o título e verifique se os outros campos permanecem.
  5. Tente uma situação inválida.
  6. Exclua um registro de teste e confirme que o identificador correto foi afetado.

Execute os testes somente em uma base de estudo. Para aprender a localizar linhas com segurança, pratique WHERE, ORDER BY e LIMIT.

CRUD real inclui regras, não apenas quatro comandos

Em um cadastro de empréstimos, criar um registro só é permitido quando o exemplar está disponível; atualizar a devolução deve mudar também a situação do exemplar; excluir um usuário com empréstimo ativo não deve ser aceito. As operações continuam sendo CRUD, mas precisam respeitar consistência e autorização.

OperaçãoRegra de exemploTeste negativo
CreateNão repetir identificadorTentar cadastrar o mesmo ID
ReadUsuário vê apenas dados permitidosConsultar registro de outro perfil
UpdateAlterar somente registro localizadoExecutar condição que não encontra linha
DeletePreservar vínculos obrigatóriosExcluir registro referenciado

Quando uma ação exige mais de uma operação

Registrar uma venda pode inserir o pedido, inserir itens e reduzir estoque. Se apenas parte for concluída, os dados ficam contraditórios. Sistemas de banco de dados usam transações para tratar esse conjunto como uma unidade: ou todas as etapas válidas são confirmadas, ou nenhuma delas permanece.

BEGIN;

INSERT INTO emprestimos (usuario_id, exemplar_id, data_retirada)
VALUES (12, 44, CURRENT_DATE);

UPDATE exemplares
SET disponivel = false
WHERE id = 44 AND disponivel = true;

COMMIT;

O exemplo é didático e ainda precisa verificar se o UPDATE realmente alterou uma linha. Em aplicações reais, validações, restrições e tratamento de erro completam o fluxo.

Plano de testes do cadastro

Para cada operação, crie um caso válido, um inválido e um de fronteira. Registre entrada, resultado esperado, resultado obtido e estado do banco depois da execução. O teste só termina quando você confirma os dados, não quando a interface mostra uma mensagem.

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.

  1. ELMASRI, Ramez; NAVATHE, Shamkant B. Fundamentals of Database Systems . 7. ed. Pearson, 2016.
  2. BEAULIEU, Alan. Learning SQL . 3. ed. O’Reilly Media, 2020.

Consulte a bibliografia completa do Código em Sala.