picoSQL - Language reference manual |
Search conditions are formed from one or more predicates, combined one another using the logical operators AND, OR and NOT. Conditions are used as to choose a subset of the rows from one or more tables. A search condition is evaluated any time a rows is read and the rows is returned if and only if the result of condition is TRUE.
NOTE: SQL standard use a three valued logic, so every condition evaluates as one of TRUE, FALSE or UNKNOWN. The truth tables of this kind of logic are the following:
AND |
TRUE |
FALSE |
UNKN. |
TRUE |
TRUE |
FALSE |
UNKN. |
FALSE |
FALSE |
FALSE |
FALSE |
UNKN. |
UNKN. |
FALSE |
UNKN. |
OR |
TRUE |
FALSO |
UNKN. |
TRUE |
TRUE |
TRUE |
TRUE |
FALSE |
TRUE |
FALSE |
UNKN. |
UNKN. |
TRUE |
UNKN. |
UNKN. |
NOT |
|
TRUE |
FALSE |
FALSE |
TRUE |
UNKN. |
UNKN. |
picoSQL use a more simple boolean logic with only the TRUE and FALSE values. This behaviour implies only one difference between picoSQL and SQL standard: picoSQL evaluates TRUE an equality between two NULL values while standard SQL does not.
Two operands in a predicate must be of comparable types.