Складні логічні вирази будуються за допомогою операцій AND,OR і NOT.
Їх використання, а також побудова за їх допомогою складних виразів визначається стандартними правилами, які прийняті в більшості алгоритмічних мов (в т.ч. – Object Pascal для Delphi).
В стандарті SQL є один дуже важливий виняток з цих правил: операції відношення в SQL мають більший пріоритет, ніж логічні операції, - це звільняє від необхідності розставляти багато дужок.
*! Значення NULLвпливають на інтерпретацію складних умов відбору, внаслідок чого результати останніх стають не такими очевидними.
Операція OR використовується для об’єднання двох умов, із яких як мінімум одна повинна бути істинною.
Для об’єднання двох умов, обидві із яких повинні бути істинними, потрібно використовувати операцію AND.
Операція NOT використовується для вибору рядків, для яких умова відбору хибна.
Таким, чином: результатом виразу NULL OR TRUE – буде TRUE, а не NULL:
Таблиця істинності операції AND
AND
TRUE
FALSE
NULL
TRUE
TRUE
FALSE
NULL
FALSE
FALSE
FALSE
FALSE
NULL
NULL
FALSE
NULL
Таблиця істинності операції OR
OR
TRUE
FALSE
NULL
TRUE
TRUE
TRUE
TRUE
FALSE
TRUE
FALSE
NULL
NULL
TRUE
NULL
NULL
Таблиця істинності операції NOT
NOT
TRUE
FALSE
NULL
FALSE
TRUE
NULL
Якщо за допомогою операцій AND, OR і NOT об’єднуються більш, ніж дві умови відбору, то згідно стандарту SQL: операція NOT має найвищий пріоритет, наступний пріоритет має операція AND, операція OR має самий низький пріоритет. Але, щоб гарантувати правильне виконання SQL – запиту на будь-якій платформі, потрібно використовувати круглі дужки – це дозволить усунути всі можливі неоднозначності.