NOT NULL is a column constraint and should be used when you have a column he is not in a primary key (primary keys are intrinsically not-null so it is silly to say NOT NULL explicitly about them) of which you know the values will always be known (not unknown or missing) so there is no need for nulls in that column.