domingo, 3 de diciembre de 2017

Todo sobre los valores NULL en bases de datos

   

Comprender el uso de NULL para evitar problemas en la base de datos

 valores NULL en bases de datos


Los usuarios nuevos en el mundo de las bases de datos a menudo se confunden con un valor especial particular del campo: El valor NULL. Este valor se puede encontrar en un campo que contiene cualquier tipo de datos y tiene un significado muy especial dentro del contexto de una base de datos relacional. Sera mejor comenzar nuestra discusión con algunas palabras sobre lo que NULL no es:

  • NULL no es el número cero.
  • NULL no es el valor de cadena vacía ("").
Por el contrario, NULL es el valor utilizado para representar una pieza de datos desconocida. A menudo, los programadores de bases de datos usarán la frase "un valor NULO", pero esto es incorrecto. Recuerde: un NULL es un valor desconocido en el que el campo aparece en blanco.

NULL EN EL MUNDO REAL

Echemos un vistazo a un ejemplo simple: Una tabla que contiene el inventario de un puesto de frutas. Supongamos que nuestro inventario contiene 10 manzanas y tres naranjas. También almacenamos ciruelas, pero nuestra información de inventario está incompleta y no sabemos cuántas ciruelas (si las hay) en stock tenemos. Usando el valor NULL, tendríamos la tabla de inventario que se muestra en la tabla a continuación.


IdInventario Nombre Cantidad
 1  Manzanas  15
 Naranjas  3
 Ciruelas  NULL


Está claro que sería incorrecto incluir una cantidad de 0 para el registro de las ciruelas, porque eso implicaría que teníamos no hay ciruelas en el inventario. Por el contrario, podríamos tener algunas ciruelas, pero no estamos seguros.


¿NULO O NO NULO?

Una tabla puede diseñarse para permitir valores NULOS o no.


Aquí hay un ejemplo de SQL que crea una tabla de inventario que permite algunos valores NULL:


CREATE TABLE INVENTARIO(
   IdInventario   INT     NOT NULL,
   nombre VARCHAR (20)     NOT NULL,
   cantidad INT         
);

La tabla de inventario aquí no permite valores NULL para el IdInventario y para la columna nombre, pero permite para la columna cantidad.

Si bien permitir un valor NULL es perfectamente correcto, los valores NULL pueden causar problemas porque cualquier comparación de valores en los que uno sea NULL siempre da como resultado NULL.

Para verificar si su tabla contiene valores NULL, use el operador IS NULL o IS NOT NULL. Aquí hay un ejemplo de IS NULL:


SELECT  IdInventario, nombre, cantidad
     FROM INVENTARIO
     WHERE cantidad IS NOT NULL;

Dado nuestro ejemplo, esto volvería:

IdInventario Nombre Cantidad
 3 Ciruelas  15

OPERANDO EN NULL

Trabajar con valores NULL a menudo produce resultados NULL, dependiendo de la operación de SQL. Por ejemplo, suponiendo que A es NULO:

Operadores aritméticos

  • A + B = NULL
  • A - B = NULL
  • A * B = NULL
  • A / B = NULL

Operadores de comparación

  • A = B = NULL
  • A != B = NULL
  • A > B = NULL
  • A !< B = NULL

Estos son solo algunos ejemplos de operadores que siempre devolverán NULL si un operando es NULL. Existen consultas mucho más complejas, y todas son complicadas por valores NULL. El punto clave es que, si permite valores NULL en su base de datos, comprenda las implicaciones y planifique para ellos.

¡Eso es NULO en pocas palabras!


César GI

About César GI

Lo que me importa es poder enseñar lo poco que se, por que asi como yo aprendo leyendo gracias a las personas que comparten sus conocimiento yo tambien quiero ayudar a la comunidad en español aportando lo poco que he aprendido hasta el momento.