MariaDB - Valores Nulos

Ao trabalhar com valores NULL, lembre-se de que são valores desconhecidos. Eles não são strings vazias ou zero, que são valores válidos. Na criação da tabela, as especificações da coluna permitem configurá-los para aceitar valores nulos ou rejeitá-los. Basta utilizar uma cláusula NULL ou NOT NULL. Isso tem aplicações em casos de informações de registro ausentes, como um número de identificação.

As variáveis ​​definidas pelo usuário têm um valor NULL até a atribuição explícita. Parâmetros de rotina armazenados e variáveis ​​locais permitem definir um valor NULL. Quando uma variável local não tem valor padrão, ela tem um valor NULL.

NULL não faz distinção entre maiúsculas e minúsculas e tem os seguintes aliases -

  • UNKNOWN (um valor booleano)
  • \N

Operadores NULL

Operadores de comparação padrão não podem ser usados ​​com NULL (por exemplo, =,>,> =, <=, <ou! =) Porque todas as comparações com um valor NULL retornam NULL, não verdadeiro ou falso. Comparações com NULL ou possivelmente contendo-o devem usar o operador “<=>” (NULL-SAFE).

Outros operadores disponíveis são -

  • IS NULL - Testa um valor NULL.

  • IS NOT NULL - Confirma a ausência de um valor NULL.

  • ISNULL - retorna o valor 1 na descoberta de um valor NULL e 0 na sua ausência.

  • COALESCE - Retorna o primeiro valor não NULL de uma lista ou retorna um valor NULL na ausência de um.

Classificando valores NULL

Nas operações de classificação, os valores NULL têm o valor mais baixo, então a ordem DESC resulta em valores NULL na parte inferior. MariaDB permite definir um valor mais alto para valores NULL.

Existem duas maneiras de fazer isso, conforme mostrado abaixo -

SELECT column1 FROM product_tbl ORDER BY ISNULL(column1), column1;

Do outro lado -

SELECT column1 FROM product_tbl ORDER BY IF(column1 IS NULL, 0, 1), column1 DESC;

Funções NULL

As funções geralmente geram NULL quando qualquer parâmetro é NULL. No entanto, existem funções projetadas especificamente para gerenciar valores NULL. Eles são -

  • IFNULL()- Se a primeira expressão não for NULL, ela será retornada. Quando avalia como NULL, ele retorna a segunda expressão.

  • NULLIF() - Retorna NULL quando as expressões comparadas são iguais, caso contrário, retorna a primeira expressão.

Funções como SUM e AVG ignoram valores NULL.

Inserindo Valores NULL

Na inserção de um valor NULL em uma coluna declarada NOT NULL, ocorre um erro. No modo SQL padrão, uma coluna NOT NULL irá inserir um valor padrão com base no tipo de dados.

Quando um campo é um TIMESTAMP, AUTO_INCREMENT ou coluna virtual, MariaDB gerencia valores NULL de forma diferente. A inserção em uma coluna AUTO_INCREMENT faz com que o próximo número na sequência seja inserido em seu lugar. Em um campo TIMESTAMP, MariaDB atribui o carimbo de data / hora atual. Em colunas virtuais, um tópico discutido posteriormente neste tutorial, o valor padrão é atribuído.

Índices UNIQUE podem conter muitos valores NULL, entretanto, as chaves primárias não podem ser NULL.

Valores NULL e o comando Alterar

Quando você usa o comando ALTER para modificar uma coluna, na ausência de especificações NULL, MariaDB atribui valores automaticamente.