Concepto
NULL significa "no hay dato": un correo que nadie registró, una nota que todavía no se pone. No es cero ni un texto vacío; es ausencia. SQL lo trata distinto que a cualquier otro valor, y entenderlo evita errores silenciosos.
WHERE columna IS NULL
COALESCE(columna, valor_si_es_null)Buscar NULL con IS NULL. = NULL no funciona: comparar algo con "no hay dato" no da verdadero ni falso, y la fila no pasa el filtro. Para encontrarlos se usa IS NULL, y para excluirlos, IS NOT NULL.
SELECT id, estudiante_id, nota, estado FROM inscripciones WHERE nota IS NULL;COALESCE: un reemplazo para mostrar. COALESCE(a, b) devuelve a si tiene dato y b si a es NULL. Sirve para que un reporte diga algo legible en vez de una celda vacía. No cambia la tabla, solo el resultado.
SELECT c.titulo, COALESCE(i.estado, 'sin inscritos') AS estado
FROM cursos AS c
LEFT JOIN inscripciones AS i ON i.curso_id = c.id;Cuidado al reemplazar en cálculos. AVG ignora los NULL: promedia solo las notas que existen. Si reemplazas el NULL por 0 antes de promediar, cuentas una nota pendiente como un cero, y el promedio baja sin que nadie se haya sacado un cero.
SELECT ROUND(AVG(nota), 2) AS promedio_real,
ROUND(AVG(COALESCE(nota, 0)), 2) AS promedio_con_ceros
FROM inscripciones;Usa COALESCE para mostrar; para calcular, piensa qué significa el dato que falta.
> tarea SQL
Arma el directorio de contacto: el nombre de cada estudiante y su correo en una columna llamada correo. Si alguien no tiene correo registrado, en esa columna debe decir 'sin correo'.
Primero intenta: las pistas aparecen después de 2 intentos con un resultado incorrecto (los errores de código no cuentan). Llevas 0.