Valores nulos en columnas de tabla
Algunas columnas no pueden tener un valor significativo en cada fila. Db2 utiliza un indicador de valor especial, el valor nulo, para representar un valor desconocido o que falta. Un valor nulo es un valor especial que Db2 interpreta como que no hay datos presentes.
Si no se especifica lo contrario, Db2 permite que cualquier columna contenga valores nulos. Los usuarios pueden crear filas en la tabla sin proporcionar un valor para la columna.
Mediante la utilización de la cláusula NOT NULL puede no permitir valores nulos en la columna. Las claves primarias deben definirse como NOT NULL.
Ejemplo
CREATE TABLE DEPT
(DEPTNO CHAR(3) NOT NULL,
DEPTNAME VARCHAR(36) NOT NULL,
MGRNO CHAR(6) ,
ADMRDEPT CHAR(3) NOT NULL,
PRIMARY KEY (DEPTNO) )
IN MYDB.MYTS;Antes de decidir si debe permitir nulos para valores desconocidos en una columna determinada, debe tener en cuenta cómo afectan los nulos a los resultados de una consulta:
- Nulos en programas de aplicaciones
- En una sentencia de SQL, los nulos
tan solo cumplen la condición del predicado especial IS NULL. Db2 ordena los valores nulos de forma diferente a los valores no nulos. Los
valores nulos no se comportan como los otros valores. Por ejemplo, si pregunta a Db2 si un valor nulo es mayor que un valor conocido determinado, la respuesta es UNKNOWN. Si a continuación le pregunta a Db2 si un valor nulo es menor que el mismo valor conocido, la respuesta sigue siendo UNKNOWN.
Si la obtención de un valor UNKNOWN es inaceptable para una columna determinada, en su lugar puede definir un valor por omisión. Los programadores están familiarizados con el comportamiento de los valores por omisión.
- Nulos en operaciones de unión
- Los nulos necesitan un manejo especial en operaciones de unión. Si realiza una operación de unión en una columna que puede contener valores nulos, considere utilizar una unión externa.