Главная страница
Случайная страница
КАТЕГОРИИ:
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Задание условий отбора полей
Условия отбора записей из запрошенных в команде выборки данных определяются ключевым словом WHERE и идущим за ним набором логических условий.
В каждом условии посредством операторов сравнения задается проверка соответствия некоторого выражения (как правило значения поля БД) заданному значению в формате < выражение1> < оператор сравнения> < выражение2>, выражение 1 и выражение 2 (3 и т.д.) - выражения, которые могут состоять из констант, названий полей данных, функций и подзапросов, объединенных арифметическими операторами и скобками. Например, при заданном в запросе условии Квартал='105', в таблице результатов будут выведены все записи БД слоя, для которых в полеКвартал задано значение 105.
Условия отбора могут объединяться с использованием логических операторов NOT, AND, OR. («Применение логических операторов»)
Полный список доступных операторов сравнения приведен в таблице далее:
Таблица 7. Операторы сравнения
Оператор
| Описание
| Примеры
| IS NULL, IS NOT NULL
| Выражение IS NULL проверяет, равно ли выражение в левой части оператора - Null, то есть пустому значению. Значение равное Null имеют незаданные поля.
Выражение IS NOT NULL соответственно проверяет неравенство значения Null.
| Улица IS NULL (все записи в которых не задано поле Улица)
Area IS Not NULL (все записи в которых задано поле Area)
| =
| Проверяется равенство значений.
Проверка равенства для строковых значений с учетом регистра значений, т.е. значениеСамолет и самолет будут признаны разными значениями
| Квартал='105' (Здания относящиеся к 105 кварталу)
| >, <
| Операторы «строгого» неравенства, проверяется что значение в левой части выражения строго больше, либо строго меньше значения в правой.
| perimeter> 50 (все здания с периметром более 50 метров)
area< 300 (все здания с площадью меньше 300 кв.м.
| > =, < =
| Операторы «нестрогого» неравенства, проверяется что значение в левой части выражения больше либо равно, или меньше либо равно значению в правой части.
| perimeter> =50 (все здания периметр которых равен, либо более 50 метров)
area< =300 (все здания с площадью меньше, либо равной 300 кв.м.)
| ! <,! >
| Альтернативная запись операторов нестрого неравенства. Проверяется что значение в левой части выражения не меньше, либо не больше значения в правой части.
| perimeter! < 50 (все здания с периметром равным, либо превышающим 50 метров)
area! > 300 (все здания с площадью не больше 300 кв.м.)
| < >,! =
| Операторы неравенства. Проверяется, неравенство значений.
| Улица< > '2й Южный пер.'
Квартал! ='105'
| BETWEEN
| Операция сравнения, проверяющая расположение значения в левой части выражения в заданном диапазоне значений в правой части выражения. Оператор задается в формате < выражение 1> BETWEEN < 1> AND < 2>, где < 1> и < 2> нижняя и верхняя границы допустимых значений.
| [Номер дома] BETWEEN 1 AND 5 (все здания с номерами от 1 до 5)
| LIKE
| Проверяется соответствие строкового значения шаблону, заданному в параметре оператора LIKE. В шаблоне могут использоваться буквы алфавита и знаки препинания, а также различные символы и выражения подстановки:
- % - вместо данного символа в искомой строке может располагаться любое количество произвольных символов. Для поиска в искомой строке непосредственно символа % следует его продублировать;
- _ - один произвольный символ;
- Квадратные скобки [] - на место квадратных скобок символ указанный в данных скобках. В скобках могут либо перечисляться допустимые символы (например[abc] соответствует символам a, или b, или c, либо указываться диапазон допустимых символов, (например [a-z] соответствует любому символу от а до z).
Если после открывающей скобки стоит знак ^, допустимы все символы кроме заданных в скобках. Например для выражения [^135] допустимы любые символы, кроме 1, 3, 5.
Для поиска в исходной строке самих символов подстановки можно заключать их в квадратные скобки (например [%] для поиска знака %, или [[] для поиска символа [), либо задать так называемый escape символ (задается выражением ESCAPE < символ> после команды LIKE). В шаблоне подстановки escape символ указывается перед символом подстановки который требуется искать в строке.
| Улица LIKE '%Южный пер.' (все записи с текстом заканчивающимся наЮжный пер.)
Улица LIKE '_й Южный пер.' (все строки начинающиеся с произвольного символа и заканчивающиеся на й Южный пер.)
Улица LIKE '[0-9]%' (строки начинающиеся с цифры)
Улица LIKE '[авдй]_' (строки из двух символов - первый символ один из а, в, д, й и второй - произвольный)
Улица LIKE '[^0-9]%' (любая строка не начинающаяся с цифры)
Улица LIKE '[[]%]' (строки заключенные в квадратные скобки) Обратите внимание, что знак ] не является сам по себе символом подстановки и может указываться напрямую.
Улица LIKE '! %%! ^' ESCAPE '! '(любая строка, начинающаяся со знака% и заканчивающаяся знаком ^).
| IN
| Проверяется соответствие значения одному из значений перечисленному после ключевого слова IN в формате < Выражение> IN (< Значение1>, < Значение2>..., < Значение N>), где < Значение1> - < Значение N>, список допустимых значений записи.
Список допустимых значений может быть результатом выполнения подзапроса («Подзапросы»).
| Улица IN ('Нахимова', '1й Южный пер.') (все здания располагающиеся на улицах Нахимова и 1й Южный пер.)
| EXISTS
| Операция сравнения, которая возвращает TRUE, если подзапрос (subquery) возвращает по крайней мере одну строку («Подзапросы»).
| EXISTS (subquery)
|
|