Como definir um campo como obrigatório no SQL?

O uso da restrição NOT NULL no SQL impede que uma coluna aceite valores nulos, garantindo que os registros sempre tenham um valor definido.

Como definir um campo como obrigatório no SQL?

Para garantir que uma coluna não aceite valores vazios, usamos a restrição NOT NULL no SQL. Isso impede que a coluna receba valores NULL, obrigando os registros a terem um dado válido.

Criando uma tabela com campo obrigatório

Podemos definir uma coluna como obrigatória ao criar uma tabela:

CREATE TABLE usuarios (
    id INT PRIMARY KEY,
    nome VARCHAR(100) NOT NULL,
    email VARCHAR(100) UNIQUE NOT NULL
);

Neste exemplo:

  • nome e email são obrigatórios devido à restrição NOT NULL.
  • Se tentarmos inserir um usuário sem um nome ou email, o SQL retornará um erro.

Tornando um campo obrigatório em uma tabela existente

Se a tabela já foi criada sem a restrição NOT NULL, podemos adicioná-la com ALTER TABLE:

ALTER TABLE usuarios ALTER COLUMN nome SET NOT NULL;

Isso impede que registros futuros tenham valores nulos na coluna nome.

Lidando com registros existentes ao alterar uma coluna

Se a tabela já possui registros com valores NULL, não podemos simplesmente aplicar NOT NULL sem antes corrigir esses dados. Uma abordagem segura é:

UPDATE usuarios SET nome = 'Desconhecido' WHERE nome IS NULL;
ALTER TABLE usuarios ALTER COLUMN nome SET NOT NULL;

Aqui, substituímos valores NULL por "Desconhecido" antes de aplicar a restrição.

A restrição NOT NULL é essencial para manter a qualidade dos dados em um banco de dados. Se os registros pudessem ter colunas vazias, os sistemas que dependem dessas informações poderiam apresentar erros ou inconsistências. Por isso, ao modelar um banco de dados, é importante identificar quais campos devem ser obrigatórios. Além do NOT NULL, outras restrições como DEFAULT e CHECK ajudam a garantir que os dados armazenados sigam um padrão adequado e confiável.

Algumas aplicações:

  • Garantia de que informações essenciais, como e-mail e senha, sejam preenchidas
  • Evita registros com dados incompletos em sistemas de CRM e e-commerce
  • Melhora a qualidade e confiabilidade dos relatórios gerados pelo banco de dados
  • Reduz erros de processamento e falhas em aplicações que dependem de dados obrigatórios

Dicas para quem está começando

  • Sempre avalie quais colunas devem ser obrigatórias antes de criar a tabela
  • Use NOT NULL para evitar valores vazios em campos essenciais
  • Se um campo pode ter um valor padrão, considere usar DEFAULT junto com NOT NULL
  • Ao alterar uma coluna para NOT NULL, verifique se já existem valores nulos e corrija-os antes
  • Testar inserções de dados após definir restrições ajuda a evitar erros no futuro

Contribuições de Rodrigo Martins

Compartilhe este tutorial: Como definir um campo como obrigatório no SQL?

Compartilhe este tutorial

Continue aprendendo:

Qual a diferença entre CHAR e VARCHAR no SQL?

CHAR e VARCHAR são tipos de dados para armazenar texto no SQL, diferenciando-se pelo uso de espaço e flexibilidade.

Tutorial anterior

O que significa NULL no SQL?

NULL no SQL representa a ausência de um valor definido em uma coluna, não sendo equivalente a um espaço em branco ou zero.

Próximo tutorial