Null significa "valor inexistente", es decir, no es un 0 (cero), tampoco una cadena vacía (espacios) ni la cadena "null".
En algunas ocasiones, podemos desconocer el valor de un dato o puede, simplemente no existir el valor de un campo para un registro. Es entonces, cuando decimos que un campo puede contener valores nulos.
Como ejemplo, supongamos que vamos a crear la tabla libros, que contendrá los campos: título, autor, editorial y precio. Para el campos precio, podemos aceptar valores nulos, ya que es posible que para algunos libros no le hayamos establecido, en ese momento, un precio para su venta. De igual forma, la editorial podría permitir nulos, si es que no fuera un dato que realmente se requiera para nuestra base de datos.
En contraposición, tendremos campos que no pueden estar vacíos jamás, ya que no podemos insertar un registro para un libro que no tiene título ni autor, suena lógico verdad?
Tomando en cuenta las consideraciones anteriores, la creación de nuestra tabla quedaría de la siguiente forma:
create table libros(
titulo varchar (30) not null;
autor varchar (20) not null;
editorial varchar (15) null;
precio float
);
Para especificar que un campo no permita valores nulos , debemos colocar "not null" después de la definición del campo.
Cuando colocamos "null" después de la definición del campo, estamos indicando que admite valores nulos (como en el caso del campo editorial), si no lo aclaramos, también permite nulos por default (como es el caso del campo precio).