WHERE — оператор в SQL указывающий, что
оператор языка управления данными (DML) должен действовать только на
записи, удовлетворяющие определенным критериям. Критерии должны быть
описаны в форме предикатов( любое математическое высказывание, в котором
есть по меньшей мере одна переменная. Предикат является основным
объектом изучения логики первого порядка.). Раздел WHERE — не
обязательный раздел в SQL (DML) предложениях. Он используется в качестве
условия в SQL-запросе для ограничения записей обрабатываемых в
выражениях SQL (DML) или возвращаемых запросом.
WHERE — зарезервированное слово языка SQL. Раздел WHERE используется совместно с SQL DML операторами в следующей форме:
SQL-DML-выражение
FROM table_name
WHERE
predicate..Предложение WHERE может присутствовать в любом из операторов
DELETE, UPDATE, SELECT, когда нужно задать условия на строки, которые
требуется обработать (соответственно, уничтожить, изменить или выбрать).
Рассмотрим структуру и примеры использования предложений WHERE.
В
предложении WHERE пишется логическое условие, которое получается
соединением с помощью логических операторов AND, OR и NOT элементарных
сравнений типа:
выражение1 < выражение2,
выражение1 >= выражение2, и т.п.,
Предикаты
(операторы) сравнение используют как аргументы строки, числа, временное
значение и возвращают истинностное значение (TRUE, FALSE или UNKNOWN). В
SQL есть шесть операторов сравнения:
= ровно; больше; не ровно;= больше или ровно.
Не для всех типов данных, можно
использовать любые предикаты сравнения. Для больших строк символов
определенны только сравнения на равенство и неравенство, двоичные строки
могут сравниваться только на равенство. Сравнение значений даты и
времени проводится согласно хронологическому порядку. Сравнивать можно
также логические значения, при этом предполагается, что TRUE больше
FALSE, а сравнение с UNKNOWN всегда дает UNKNOWN.
Используется для определения условий, при которых документ включается в результаты запроса.
В части условий поиска предложения WHERE определяются условия сопоставления при поиске.
Документы, соответствующие заданным
сочетаниям логических операторов и операторов сравнения, возвращаются в
результатах запроса. В результате проверки условия поиска возвращается
логическое значение (TRUE или FALSE). Если результат равен TRUE,
документ включается. Если FALSE — не включается. Документам,
возвращаемым в результатах запроса Поиск, присваиваются значения ранга,
определяющие степень их соответствия условиям поиска.
Предикатами
поиска называются выражения, в которых декларируется определенный факт о
каком-либо значении. Если документ "соответствует" требованиям
предиката, свойству документа, указанному в предикате, присваивается
соответствующее значение.
Условие поиска может включать один или
несколько предикатов или условий поиска, объединенных с помощью
логических операторов AND, OR или AND NOT. Необязательный унарный
оператор NOT используется для отрицания логического значения предиката
или условия поиска. Для группировки и определения уровней логических
элементов можно использовать круглые скобки.
Логические операторы AND, OR и NOT. Операторы AND и OR используются для объединения условий поиска в предложениях WHERE. Оператор NOT обращает значение условия поиска. Оператор AND соединяет два условия и возвращает TRUE, только если оба условия выполняются. Например, этот запрос возвратит только одну строку. Оператор OR также соединяет два условия, но возвращает TRUE, если выполняется хотя бы одно из условий. Оператор NOT обращает значение условия поиска.