NULL is not the same as zero. A number ten greater than an unknown is still an unknown. NULL is not the same as a string of zero length. Combining any string with NULL in standard SQL returns NULL. NULL is not the same as false. Boolean expressions with AND, OR, and NOT also produce results that some people find confusing. When you declare a column as NOT NULL, it should be because it would make no sense for the row to exist without a value in that column. Use null to signify a missing value for any data type.