Предложения WHERE
Предложения WHERE
В этой книге предложение WHERE использовалось много раз без всякого объяснения, потому что его значение и способ использования очевидны. Оператор выполняет операцию (такую как SELECT, DELETE или UPDATE) только с теми табличными строками, для которых определенное условие истинно. У предложения WHERE такой синтаксис:
SELECT список_столбцов
FROM имя_таблицы
WHERE условие ;
DELETE FROM имя_таблицы
WHERE условие ;
UPDATE имя_таблицы
SET столбец1=значение1, столбец2=значение2, ...,
столбец_n=значение_n
WHERE условие ;
Во всех случаях условие в предложении WHERE может быть или простым, или сколь угодно сложным. Чтобы из множества условий создать одно, их можно соединить друг с другом при помощи логических связок AND, OR и NOT. В этой главе мы еще вернемся к ним.
Вот некоторые типичные примеры предложений WHERE.
WHERE CustomerlD = SALES.CustomerlD
WHERE FOODS.Calories = COMIDA.Caloria
WHERE FOODS.Calories < 219
WHERE FOODS.Calories > 3 * base_value
WHERE FOODS.Calories < 219 AND FOODS.Protein > 27.4
Условия, выражаемые предложениями WHERE, называются предикатами. Предикат — это выражение, которое утверждает факт, относящийся к значениям из этого выражения.
Например, предикат FOODS.Calories < 219 является истинным, если в текущей строке значение столбца FOODS.Calories меньше 219. Если утверждение является истинным, то оно удовлетворяет условию. Утверждение может быть истинным (т.е. его значение равно True), ложным (его значение равно False) или с неопределенным логическим значением. Последний случай бывает тогда, когда в утверждении какие-либо элементы имеют значение NULL. Наиболее распространенными являются предикаты сравнения (=, <, >, О, <= и >=), но в SQL имеются и некоторые другие, которые значительно увеличивают возможности "отфильтровывать" требуемые данные от всех остальных. Ниже приведен список с предикатами, предоставляющими такую возможность.
- Предикаты сравнения.
- BETWEEN.
- IN [NOT IN].
- LIKE [NOT LIKE].
- NULL.
- ALL, SOME, ANY.
- EXISTS.
- UNIQUE.
- OVERLAPS.
- MATCH.
- SIMILAR.
- DISTINCT.