Начальное определение синтаксиса предложения WHERE до неприличия простое:
WHERE <условия поиска>
В самих же условиях поиска, которые много сложнее по синтаксису, содержатся те самые условия, которые позволяют выполнить необходимый отбор данных. Несколько упрощенный синтаксис условий поиска:
| <значение> <оператор> {ALL | SOME | ANY} (<выбор списка значений одного столбца>)
| EXISTS (<список выбора>)
| SINGULAR (<список выбора>)
| <значение> [NOT] CONTAINING <значение>
| <значение> [NOT] STARTING [WITH] <значение>
| <значение> <оператор> {ALL | SOME | ANY} (<выбор списка значений одного столбца>)
| EXISTS (<список выбора>)
| SINGULAR (<список выбора>)
| (<условия поиска>)
| NOT <условия поиска>
| <условия поиска> OR <условия поиска>
| <условия поиска> AND <условия поиска>
Здесь <оператор> — один из допустимых операторов сравнения: =, <, >, <=, >=, !<, !> <>, !=. Восклицательный знак используется в этих операторах как отрицание. Кроме того, в этом качестве также используется и символ ^. К перечню операторов сравнения следует также добавить и следующие: ^=, ^>, ^<.
<значение> ::= {
<имя столбца>
| <константа> | <выражение> | <функция>
| NULL }
Мы видим, что значением может быть имя столбца, любая допустимая константа, пустое значение, имя пользователя, подключенного в настоящий момент к базе данных, выражение, обращение к встроенной функции или к внешней функции.
Не спеша, просмотрим по порядку возможные варианты выбора нужных нам строк.