En una base de datos, el valor NULL representa la ausencia de un valor o la falta de información en un campo específico. No significa cero, vacío o una cadena de caracteres sin contenido, sino que indica que el valor de esa columna es desconocido o no aplicable.
NULLAusencia de Valor:
NULL significa que no se ha asignado ningún valor a una celda en particular. Esto puede deberse a que el valor es desconocido, no aplicable o aún no se ha ingresado.Diferencia con Cero o Cadena Vacía:
0 y "" (cadena vacía) son valores válidos en muchas bases de datos y significan algo concreto: 0 puede indicar una cantidad numérica nula y "" una cadena vacía. Pero NULL significa que no existe un valor en absoluto.Operaciones con NULL:
NULL suelen devolver NULL. Por ejemplo, 5 + NULL o NULL > 10 devolverán NULL.NULL es diferente a cualquier valor, incluso a sí mismo. Por ejemplo, NULL = NULL es falso. Esto se debe a que NULL no tiene un valor concreto, por lo que no se puede afirmar que dos NULL sean iguales.Uso en Consultas:
NULL, se usa IS NULL o IS NOT NULL en lugar de = o !=.SELECT * FROM empleados WHERE email IS NULL;
NULLNULLINSERT con NULL:
NULL, automáticamente toma el valor NULL.INSERT INTO empleados (id_empleado, nombre) VALUES (1, 'Carlos');
-- Si "email" permite NULL, en este caso quedará como NULL
Función de Manejo de NULL:
COALESCE() o IFNULL() para manejar NULL. Estas funciones devuelven un valor alternativo si encuentran un NULL.SELECT nombre, COALESCE(email, 'No tiene email') FROM empleados;
NULL en Agregaciones:
SUM, AVG o COUNT, los valores NULL se ignoran. Por ejemplo, en un cálculo de promedio, NULL no contribuye al conteo de elementos.NULLNULL no es igual a ningún valor, ni siquiera a otro NULL.NULL. Sin embargo, las columnas con UNIQUE a veces sí permiten NULL, dependiendo del motor de base de datos, aunque el comportamiento puede variar.NULL en condiciones y unir tablas (JOIN) puede afectar el rendimiento y los resultados si no se consideran adecuadamente.Supongamos que tenemos una tabla de clientes donde el campo segundo_nombre es opcional. Al insertar datos de un cliente sin segundo nombre, NULL se almacena en ese campo.
CREATE TABLE clientes (
id_cliente INT PRIMARY KEY,
primer_nombre VARCHAR(50),
segundo_nombre VARCHAR(50) NULL,
email VARCHAR(100)
);
-- Insertar sin segundo nombre
INSERT INTO clientes (id_cliente, primer_nombre, email) VALUES (1, 'Laura', 'laura@email.com');
Al consultar, podemos manejar NULL para visualizar si un segundo nombre no está presente:
SELECT id_cliente, primer_nombre, COALESCE(segundo_nombre, 'No especificado') AS segundo_nombre, email FROM clientes;
COALESCE: La función COALESCE en SQL se utiliza para devolver el primer valor no nulo de una lista de expresiones. Es especialmente útil para manejar valores faltantes o nulos en consultas y evitar errores o resultados inesperados cuando se trabaja con datos incompletos.
Diferencia con ISNULL o IFNULL: En algunos sistemas, como SQL Server y MySQL, existen funciones específicas (ISNULL, IFNULL) que tienen un propósito similar, pero suelen aceptar solo dos parámetros. COALESCE es más flexible porque admite múltiples expresiones y es parte del estándar SQL.
------------------jj
SELECT COALESCE(nombre, 'Sin Nombre') AS nombre_final
FROM empleados;
nombre es NULL, el resultado será 'Sin Nombre'.SELECT COALESCE(correo_personal, correo_trabajo, 'No disponible') AS correo
FROM usuarios;
correo_personal si no es NULL. Si lo es, intenta con correo_trabajo. Si ambos son nulos, devuelve 'No disponible'.SELECT COALESCE(SUM(ventas), 0) AS total_ventas
FROM ventas;
NULL, devuelve 0 en lugar de NULL.Supongamos que tienes una tabla llamada clientes:
| id_cliente | telefono_casa | telefono_celular | telefono_oficina |
|---|---|---|---|
| 1 | NULL | 1234567890 | NULL |
| 2 | NULL | NULL | 9876543210 |
| 3 | NULL | NULL | NULL |
Consulta:
SELECT id_cliente,
COALESCE(telefono_casa, telefono_celular, telefono_oficina, 'Sin teléfono') AS telefono_contacto
FROM clientes;
Resultado:
| id_cliente | telefono_contacto |
|---|---|
| 1 | 1234567890 |
| 2 | 9876543210 |
| 3 | Sin teléfono |
Resumen: NULL es un valor especial en bases de datos que denota la ausencia de un valor conocido. Requiere un manejo adecuado en consultas y operaciones debido a sus características únicas, que difieren de otros valores.