Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Задание условий отбора полей






Условия отбора записей из запрошенных в команде выборки данных определяются ключевым словом 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)

 


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.006 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал