Сравнение

Наиболее общим типом условия выборки является сравнение. При сравнении СУБД вычисляет и сравнивает значения двух выражений для каждой строки данных. Синтаксис сравнения можно записать следующим образом:

<выражение1> <оператор> <выражение2>

оператор − {= | < | > | <= | >= |!< |!> | <> |!=}.

Сравнение столбца с константой. Чаще всего выражения бывают простыми и содержат в качестве выражения1 имя столбца, а в качестве выражения2 – константу. При этом условие поиска имеет такой вид:

<имя_столбца> <оператор> <константа>.

Здесь в качестве константы явно указываются строковые или числовые значения.

Сравнение столбца с результатом вычисления выражения. В более сложных ситуациях условие поиска в предложении WHERE может быть сформулировано при помощи выражения:

<выражение1> <оператор> <имя_столбца>

Или может использоваться и другой вариант написания условия поиска

<имя_столбца> <оператор> <выражение2>

Последний способ чаще применяется при использовании механизма вложенных подзапросов, речь о которых пойдет ниже. В обоих случаях результат вычисления выражения сравнивается с содержимым указанного столбца.

Использование логических выражений. Сложные логические выражения строятся при помощи операторов AND, OR и NOT. Их использование, а также построение из них сложных выражений подчиняется стандартным правилам, принятым для большинства алгоритмических языков, с одним исключением: операции отношения в них имеют больший приоритет, чем логические операции, что избавляет от необходимости расстановки многочисленных скобок.

Пример: получить фамилию и имя служащих из таблиц SLUZHASCHIE, плюс город в котором он работает из таблицы OFFISY. При этом возраст служащего должен быть не меньше 30 и не больше 50 лет.

SELECT S.FAMILY, S.NAME, О.CITY

FROM SLUZHASCHIE S, OFFISY О

WHERE (S.ID_OFC = О.ID_OFC) AND

(S.AGE >= 30 AND S.AGE <= 50)

Когда СУБД сравнивает значения двух выражений, могут получиться следующие результаты:

– если значение истинно, то результат проверки имеет значение TRUE;

– если значение ложно, то результат проверки имеет значение FALSE

– если хотя бы одно из выражений имеет значение NULL, то результат проверки имеет значение NULL.

Следует помнить, что в трехзначной логике SQL в результат запроса попадают только те строки, для которых условие отбора рано TRUE. Поэтому строки, содержащие NULL-значения «исчезают» при выполнении запроса.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: