Es simplemente que cuando defines el campo le indicas el valor por default:
Importante:
1) Si necesitas manejar números que deben tener precisión, como es el caso de valores monetarios, corresponde usar DECIMAL(
longitud,decimales), ya que el FLOAT o DOUBLE es un valor de punto flotante
por aproximación, de modo que los valores pueden almacenarse con un error por más o menos , mientras que el DECIMAL está definido para guardar decimales exactos (puede trabajar con redondeo).
2) Si no vas a usar los decimales, o vas a guardar siempre enteros, usa tipos de dato entero (TINYINT, SMALLINT, INT, o BIGINT).
3) Si los números a almacenar serán siempre positivos, usa UNSIGNED como modificador del tipo de dato (INT UNSIGNED, MEDIUMINT UNSIGNED, etc.), permite usar el doble del rango de representación.
4) Todo valor por default de una columna tiene preeminencia sobre el NULL, pero si vas a definir un DEFAULT, te conviene declarar NULL a la columna, porque recargas menos el motor del DBMS, ya que no necesita verificar si el campo está siendo o no ingresado.