Para mi gusto lo mejor que puedes hacer para evitar tu problema es modificar la columna vacía por otro valor. Por ejemplo en el caso de los exámenes.
Modificas todos los vacíos por el valor 11 (que es absurdo tenerlo en un examen) con una consulta así
Código:
UPDATE notas SET nota=11 where nota=''
Y así de paso codificas de alguna forma los alumnos que no hicieron un examen, así después puedes crear el código 12 que te indica que no lo hizo porque otro motivo.
Espero haber ayudado un saludo