MariaDB - Valores nulos

Cuando trabaje con valores NULL, recuerde que son valores desconocidos. No son cadenas vacías ni cero, que son valores válidos. En la creación de tablas, las especificaciones de las columnas permiten configurarlas para aceptar valores nulos o rechazarlos. Simplemente utilice una cláusula NULL o NOT NULL. Esto tiene aplicaciones en casos de información de registro faltante como un número de identificación.

Las variables definidas por el usuario tienen un valor de NULL hasta la asignación explícita. Los parámetros de rutina almacenados y las variables locales permiten establecer un valor de NULL. Cuando una variable local no tiene un valor predeterminado, tiene un valor de NULL.

NULL no distingue entre mayúsculas y minúsculas y tiene los siguientes alias:

  • DESCONOCIDO (un valor booleano)
  • \N

Operadores NULL

Los operadores de comparación estándar no se pueden usar con NULL (por ejemplo, =,>,> =, <=, <o! =) Porque todas las comparaciones con un valor NULL devuelven NULL, ni verdadero ni falso. Las comparaciones con NULL o que posiblemente lo contengan deben usar el operador “<=>” (NULL-SAFE).

Otros operadores disponibles son:

  • ES NULO: prueba un valor NULO.

  • NO ES NULO: confirma la ausencia de un valor NULO.

  • ISNULL: devuelve un valor de 1 al descubrir un valor NULL y 0 en su ausencia.

  • COALESCE: devuelve el primer valor no NULO de una lista, o devuelve un valor NULO en ausencia de uno.

Ordenar valores NULL

En las operaciones de clasificación, los valores NULL tienen el valor más bajo, por lo que el orden DESC da como resultado valores NULL en la parte inferior. MariaDB permite establecer un valor más alto para valores NULL.

Hay dos formas de hacer esto, como se muestra a continuación:

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

Al revés

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

Funciones NULL

Las funciones generalmente generan NULL cuando los parámetros son NULL. Sin embargo, existen funciones diseñadas específicamente para administrar valores NULL. Ellos son -

  • IFNULL()- Si la primera expresión no es NULL, la devuelve. Cuando se evalúa como NULL, devuelve la segunda expresión.

  • NULLIF() - Devuelve NULL cuando las expresiones comparadas son iguales, si no, devuelve la primera expresión.

Funciones como SUM y AVG ignoran los valores NULL.

Insertar valores NULL

Al insertar un valor NULL en una columna declarada NO NULL, se produce un error. En el modo SQL predeterminado, una columna NOT NULL insertará un valor predeterminado basado en el tipo de datos.

Cuando un campo es TIMESTAMP, AUTO_INCREMENT o columna virtual, MariaDB administra los valores NULL de manera diferente. La inserción en una columna AUTO_INCREMENT hace que el siguiente número de la secuencia se inserte en su lugar. En un campo TIMESTAMP, MariaDB asigna la marca de tiempo actual en su lugar. En las columnas virtuales, un tema que se analiza más adelante en este tutorial, se asigna el valor predeterminado.

Los índices UNIQUE pueden contener muchos valores NULL, sin embargo, las claves primarias no pueden ser NULL.

Valores NULL y el comando Alter

Cuando usa el comando ALTER para modificar una columna, en ausencia de especificaciones NULL, MariaDB asigna valores automáticamente.