Сравнение
Наиболее общим типом условия выборки является сравнение. При сравнении СУБД вычисляет и сравнивает значения двух выражений для каждой строки данных. Синтаксис сравнения можно записать следующим образом:
<выражение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-значения «исчезают» при выполнении запроса.
Дата добавления: 2015-02-03; просмотров: 925;