É importante tratar corretamente os valores NULL nas operações com bancos de dados SQL. O NULL indica que os dados estão ausentes, desconhecidos ou não se aplicam. Neste artigo, vamos explicar os procedimentos específicos para inserções e atualizações de valores NULL no SQL, além de destacar pontos de atenção e armadilhas comuns.
Conceito básico de NULL
O NULL no SQL indica a ausência ou desconhecimento de um valor. Diferente de outros tipos de dados, o NULL representa um estado onde “não há valor”. Por exemplo, quando uma coluna de uma tabela não possui dados inseridos, o valor dessa coluna será NULL. O NULL exige tratamento especial, especialmente em operações como comparações e funções.
Como inserir NULL
Inserir um valor NULL em um banco de dados usando o comando INSERT é muito simples. Basta especificar NULL para a coluna na qual deseja inserir o valor. Veja um exemplo a seguir.
Comando INSERT básico
No exemplo abaixo, um novo registro é inserido na tabela employees
. Neste caso, o valor NULL será inserido na coluna middle_name
.
INSERT INTO employees (first_name, last_name, middle_name)
VALUES ('John', 'Doe', NULL);
Inserir NULL em uma coluna específica
Também é possível inserir valores apenas em colunas específicas e deixar as demais com valores NULL.
INSERT INTO employees (first_name, last_name)
VALUES ('Jane', 'Smith');
Neste caso, o valor da coluna middle_name
será automaticamente NULL.
Como atualizar valores para NULL
O comando UPDATE pode ser utilizado para atualizar dados existentes para valores NULL. Quando você quer atualizar uma coluna específica de um registro para NULL, basta usar a cláusula SET e atribuir o valor NULL à coluna desejada.
Comando UPDATE básico
No exemplo abaixo, a coluna middle_name
da tabela employees
será atualizada para NULL.
UPDATE employees
SET middle_name = NULL
WHERE employee_id = 1;
Este comando define a coluna middle_name
do registro cujo employee_id
é igual a 1 como NULL.
Atualizar várias colunas para NULL
Também é possível atualizar várias colunas para NULL ao mesmo tempo.
UPDATE employees
SET middle_name = NULL, last_name = NULL
WHERE employee_id = 2;
Neste caso, as colunas middle_name
e last_name
do registro com employee_id
igual a 2 serão atualizadas para NULL.
Cuidados ao lidar com NULL
Há alguns pontos importantes a serem considerados ao trabalhar com valores NULL. A falta de entendimento adequado sobre o NULL pode levar a bugs inesperados ou inconsistências nos dados.
Comparação com NULL
O NULL é um valor especial, por isso não pode ser comparado usando operadores comuns (como = ou !=). Para comparar com valores NULL, é necessário utilizar IS NULL
ou IS NOT NULL
.
SELECT * FROM employees
WHERE middle_name IS NULL;
Funções e operações com NULL
Qualquer cálculo que inclua um valor NULL terá como resultado NULL. Por exemplo, NULL + 5
resultará em NULL. Para evitar o NULL, você pode usar a função COALESCE
e definir um valor padrão.
SELECT COALESCE(middle_name, 'N/A') AS middle_name
FROM employees;
Valor padrão para NULL
Quando uma coluna não tem um valor padrão definido, essa coluna será NULL ao inserir um novo registro. No entanto, é possível definir um valor padrão para evitar NULL.
ALTER TABLE employees
ALTER COLUMN middle_name SET DEFAULT 'Unknown';
Como verificar valores NULL
A seguir, mostraremos como verificar valores NULL em uma tabela usando o comando SELECT. Monitorar valores NULL de forma eficaz ajuda a manter a integridade dos dados.
Verificação básica de NULL
Para buscar registros onde uma coluna específica contém NULL, utilize IS NULL
.
SELECT * FROM employees
WHERE middle_name IS NULL;
Esta consulta retorna todos os registros onde a coluna middle_name
é NULL.
Verificação de valores que não são NULL
Por outro lado, para buscar registros onde uma coluna não contém NULL, utilize IS NOT NULL
.
SELECT * FROM employees
WHERE middle_name IS NOT NULL;
Esta consulta retorna todos os registros onde a coluna middle_name
não é NULL.
Consulta complexa incluindo NULL
Também é possível combinar várias condições para buscar dados que incluam valores NULL.
SELECT * FROM employees
WHERE department_id = 3 AND middle_name IS NULL;
Essa consulta retorna os registros onde o department_id
é igual a 3 e o middle_name
é NULL.
Conclusão
A inserção e atualização de valores NULL no SQL são operações importantes no gerenciamento de bancos de dados. O NULL representa o estado “sem valor” e pode ser tratado facilmente com os comandos INSERT e UPDATE. No entanto, comparações e operações envolvendo NULL exigem cuidados especiais. Gerenciando NULL de forma adequada, você pode manter a integridade e a qualidade dos dados. Use os métodos apresentados neste artigo para realizar operações de SQL de forma mais eficaz.