>>37
Then compare this spec to SQLite and tell me if it is too large:
http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf
NULL is considered a false value, description of no value. In those example, you are almost saying something like this:
select NO_VALUE in (NO_COMPARISON) ->[yields] 0 (NOTHING)
select NO_VALUE in (A_REAL_VALUE&NUMBER:7) -> NO_VALUE[nothing to compare with. E.g. do you compare colours to numbers?]
select REAL_NUMBER:7 in (ONE_REAL_VALUE:7, NO_VALUE) -> ONE_REAL_COMPARISON
If that confuses you, learn about the SQL type system:
https://en.wikipedia.org/wiki/SQL#Data_types
NULL has history, since it was used for other languages, but mostly used as a flag:
https://en.wikipedia.org/wiki/Null_%28SQL%29
I do not were you reading that, but you should first learn SQL from a beginners book or article. If you target is SQLite, I gave lots of resources, and how to find them. You can even buy books. Once you have done so, you can properly understand why the grammar of a specification is created such way. Did you learned how to build a bike first before you road it⸮ Or did you learned how to ride the bike from an expert before you learnt how to assemble and/or repair yours⸮
tl;dr Look for beginners' learning material first, before you delve into the specifications.