A constraint NOT NULL é utilizada para impedir que uma coluna receba valores vazios ou nulos.
Ela determina que uma informação é obrigatória no momento do cadastro de um registro.
O valor NULL representa ausência de informação.
Ele não significa zero, espaço vazio ou texto vazio. Indica que nenhum valor foi informado.
| Valor | Significado |
|---|---|
| NULL | Nenhuma informação cadastrada |
| 0 | Valor numérico zero |
| '' | Texto vazio |
CREATE TABLE clientes (
nome VARCHAR(100) NOT NULL
);
Criando uma tabela de clientes:
CREATE TABLE clientes (
id INT AUTO_INCREMENT PRIMARY KEY,
nome VARCHAR(100) NOT NULL,
email VARCHAR(150) NOT NULL
);
Neste exemplo, nome e email são campos obrigatórios.
INSERT INTO clientes
(nome,email)
VALUES
(NULL,'teste@email.com');
Podemos alterar uma coluna utilizando ALTER TABLE.
ALTER TABLE clientes
MODIFY nome VARCHAR(100) NOT NULL;
ALTER TABLE clientes
MODIFY nome VARCHAR(100);
Após a alteração, o campo poderá receber valores NULL.
| Sistema | Campo NOT NULL |
|---|---|
| Cadastro de Cliente | Nome |
| Login | Senha |
| Produto | Descrição |
| Funcionário | CPF |
| NOT NULL | DEFAULT |
|---|---|
| Exige preenchimento | Preenche automaticamente |
| Usuário informa o valor | Banco define um valor padrão |
| Impede NULL | Evita ausência de valor |
CREATE TABLE usuarios (
id INT AUTO_INCREMENT PRIMARY KEY,
nome VARCHAR(100) NOT NULL,
ativo BOOLEAN DEFAULT TRUE
);
O nome é obrigatório e o campo ativo recebe TRUE automaticamente.