Null (SQL)

Codd indicó en su libro “The Relational Model for Database Management publicado en 1990, Version 2” que un solo mandato Null a través del estándar SQL era inadecuado, y debería ser reemplazado por dos marcadores Null separados para indicar la razón de por qué los datos faltan.Debido a su adicional complejidad, la idea de los múltiples valores Null no ha logrado un reconocimiento general.Null no está diseñado como un número entero, carácter u otro tipo de dato específico.La proposición WHERE (DONDE) propicia que la declaración LMD actúe sólo en aquellas filas para las cuales los cálculos de predicados evalúan la Verdad.Interpretando Desconocido y Falso como el mismo resultado lógico es un error común encontrado cuando tratamos con Nulls.El siguiente ejemplo lo demuestra: El ejemplo arriba planteado siempre devuelve lógicamente ceros a las filas debido a que la comparación entre la columna i con Null siempre devuelve un valor Desconocido, incluso para aquellas filas en las que i es Null.Las expresiones CASE de SQL funcionan conforme a las mismas reglas que las del DMS WHERE para Null.Esto quiere decir que una revisión tendrá éxito si el resultado de la comprobación es Verdadero o Desconocido.El ejemplo siguiente muestra una tabla con una comprobación que prohibirá a cualquier valor de número entero ser insertado en la columna i, pero permitirá a la Null ser insertada ya que el resultado de la comprobación siempre evaluará si es Desconocido para la Null.Con el objetivo de que una columna rechace Nulls, la coacción NOT NULL puede ser aplicada, como abajo se muestra en el ejemplo.El siguiente fragmento de código, en formato estándar ISO SQL, demuestra el empleo del Null 3VL en una declaración IF.El siguiente ejemplo utiliza dos tablas para demostrar que la producción del marcador Null en la combinación externa izquierda.El resultado generado en esta serie de cuestiones demuestra cómo SQL usa el Null como un marcador para valores que faltan en la parte derecha de la tabla (Números de teléfono), como se muestra a continuación: Las combinaciones internas (Inner Joins) y las cruzadas (Cross Joins), también están disponibles en el estándar SQL, y no generan marcadores Null para valores ausentes en tablas relacionadas.La función SQL COALESCE o expresiones CASE pueden ser usadas para "simular" una igualdad Null en criterios de unificación, y los predicados ‘ES NULO’ Y ‘NO ES NULL’ pueden ser utilizados en los criterios de unificación también.Aunque este comportamiento no sea definido por la estándar SQL ISO muchos productos comercializados DBMS tratan esta operación de modo similar.Otras operaciones SQL, cláusulas, y palabras clave usan "no distinto" en su tratamiento de Nulls.Estos incluyen lo siguiente: El estándar SQL no define explícitamente por defecto la clase de orden para los Null.Los vendedores que no ponen en práctica esta funcionalidad pueden especificar tratamientos diferentes para la clasificación de Null en el DBMS.
El carácter griego omega minúscula (ω) se utiliza para representar nulo en la teoría de bases de datos.