SQL's Fifth Concept - NULL
Unfortunately, SQL embraces a fifth concept, called NULL, an apparently simple little thing but one that has pervasive effects on our usual understanding of the other four. NULL denotes a kind of nothingness. It is somewhat akin to a value in that it can be the result of evaluating an expression, but it has no type, cannot appear everywhere a value can appear, and lacks certain other properties that values have, as we shall see.
Although SQL is not the only computer language to include a special construct representing non- existence, its own variety, NULL is accompanied by a departure from classical logic that is not found in any other well-known languages and gives rise to some deviations from relational database theory that students and users have to be well aware of. The departure in question is the introduction of a third truth value, denoted by the key word UNKNOWN. For example, a comparison of the form x = y in SQL evaluates to UNKNOWN if either x or y evaluates to NULL, even when they both do! (The comparison operator IS NOT DISTINCT FROM is available in place of =, such that x IS NOT DISTINCT FROM y evaluates to FALSE if just one of x and y is NULL, TRUE if they both are, and is otherwise equivalent to x = y.)